From 4d157748b9897f9866e09a9ca89ab047654ad812 Mon Sep 17 00:00:00 2001 From: linyongji Date: Fri, 22 Jan 2021 09:51:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=94=AF16=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +++++ Alogrithm/.vs/Alogrithm/v16/.suo | Bin 105984 -> 105984 bytes Alogrithm/Alogrithm/Alogrithm.vcxproj | 3 +++ Alogrithm/Alogrithm/Alogrithm.vcxproj.filters | 9 +++++++++ Alogrithm/Alogrithm/config/16_ReverseBits.ini | 18 ++++++++++++++++++ Alogrithm/Alogrithm/include/16_ReverseBits.h | 3 +++ Alogrithm/Alogrithm/src/16_ReverseBits.cpp | 13 +++++++++++++ Alogrithm/Alogrithm/src/main.cpp | 6 ++---- Alogrithm/UnitTest/UnitTest.cpp | 16 ++++++++++++++++ Alogrithm/UnitTest/UnitTest.vcxproj | 2 +- Alogrithm/UnitTest/pch.h | 1 + 11 files changed, 71 insertions(+), 5 deletions(-) create mode 100644 Alogrithm/Alogrithm/config/16_ReverseBits.ini create mode 100644 Alogrithm/Alogrithm/include/16_ReverseBits.h create mode 100644 Alogrithm/Alogrithm/src/16_ReverseBits.cpp diff --git a/.gitignore b/.gitignore index 4c676a0..348e7e4 100644 --- a/.gitignore +++ b/.gitignore @@ -149,3 +149,8 @@ Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/9876e434a61c44b6/15_WORDPATTERN.ipch Alogrithm/.vs/Alogrithm/v16/TestStore/0/002.testlog Alogrithm/Alogrithm/Debug/15_WordPattern.obj Alogrithm/TestResults/c48be650-9a69-4bb0-8f14-5679ff4c12c3/林_MI-1 2021-01-21 11_21_13.coverage +Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/1a3cc74a3bca3cfc/16_REVERSEBITS.ipch +Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/5ccdb9c64312b2ee/16_REVERSEBITS.ipch +Alogrithm/.vs/Alogrithm/v16/ipch/AutoPCH/969dd2cbf6a00d1b/16_REVERSEBITS.ipch +Alogrithm/.vs/Alogrithm/v16/TestStore/0/003.testlog +Alogrithm/Alogrithm/Debug/16_ReverseBits.obj diff --git a/Alogrithm/.vs/Alogrithm/v16/.suo b/Alogrithm/.vs/Alogrithm/v16/.suo index fb10a0778defa9c2ce0ec7bf3b728b94237c4154..23aac16b73be155818c5e30a3fc94a1f2520906a 100644 GIT binary patch delta 8292 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 delta 8184 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 BuA2Y= diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj b/Alogrithm/Alogrithm/Alogrithm.vcxproj index 4a3ce66..e5c3a6e 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj @@ -147,6 +147,7 @@ + @@ -165,6 +166,7 @@ + @@ -182,6 +184,7 @@ + diff --git a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters index 72060dc..97af554 100644 --- a/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters +++ b/Alogrithm/Alogrithm/Alogrithm.vcxproj.filters @@ -72,6 +72,9 @@ 源文件\src + + 源文件\src + @@ -119,6 +122,9 @@ 头文件\include + + 头文件\include + @@ -166,5 +172,8 @@ 资源文件\config + + 资源文件\config + \ No newline at end of file diff --git a/Alogrithm/Alogrithm/config/16_ReverseBits.ini b/Alogrithm/Alogrithm/config/16_ReverseBits.ini new file mode 100644 index 0000000..567d1be --- /dev/null +++ b/Alogrithm/Alogrithm/config/16_ReverseBits.ini @@ -0,0 +1,18 @@ +[Test1] +Input=43261596 +Output=964176192 +[Test2] +Input=6 +Output=1610612736 +[Test3] +Input=4294967293 +Output=3221225471 +[Test4] +Input=128 +Output=16777216‬ +[Test5] +Input=1 +Output=2147483648‬ +[Test6] +Input=2 +Output=1073741824‬ \ No newline at end of file diff --git a/Alogrithm/Alogrithm/include/16_ReverseBits.h b/Alogrithm/Alogrithm/include/16_ReverseBits.h new file mode 100644 index 0000000..c579705 --- /dev/null +++ b/Alogrithm/Alogrithm/include/16_ReverseBits.h @@ -0,0 +1,3 @@ +#pragma once +#include +uint32_t ReverseBits(uint32_t n); \ No newline at end of file diff --git a/Alogrithm/Alogrithm/src/16_ReverseBits.cpp b/Alogrithm/Alogrithm/src/16_ReverseBits.cpp new file mode 100644 index 0000000..f49fe11 --- /dev/null +++ b/Alogrithm/Alogrithm/src/16_ReverseBits.cpp @@ -0,0 +1,13 @@ +#include "../include/16_ReverseBits.h" +//Ŀ:ߵ 32 λ޷Ķλ +//˼·n1룬ȡһλresһλٰһλresлֵres +// ѭIJ32ΣresresǵߵĽ +uint32_t ReverseBits(uint32_t n) { + uint32_t res = 0; //һuint32_tΪֵ + for (int i = 0; i < 32; i++) {//ѭλ32 + res = res << 1; //resһλ׼һλֵ + res = res | (n & 1);//ȡnһλһλ浽resУ + n = n >> 1;//nѭ + } +return res; +} \ No newline at end of file diff --git a/Alogrithm/Alogrithm/src/main.cpp b/Alogrithm/Alogrithm/src/main.cpp index de01dd6..6fb3c89 100644 --- a/Alogrithm/Alogrithm/src/main.cpp +++ b/Alogrithm/Alogrithm/src/main.cpp @@ -1,11 +1,9 @@ #include -#include "../include/15_WordPattern.h" +#include "../include/16_ReverseBits.h" int main() { - char p[] = "aba"; - char s[] = "dog cat dog d"; - printf("%d\n", WordPattern(p, s)); + printf("%ld\n", ReverseBits(1)); return 0; } diff --git a/Alogrithm/UnitTest/UnitTest.cpp b/Alogrithm/UnitTest/UnitTest.cpp index 75f4c48..8b0fe93 100644 --- a/Alogrithm/UnitTest/UnitTest.cpp +++ b/Alogrithm/UnitTest/UnitTest.cpp @@ -17,6 +17,7 @@ using namespace Microsoft::VisualStudio::CppUnitTestFramework; #define FileName_13 "../Alogrithm/config/13_MyAtoi.ini" #define FileName_14 "../Alogrithm/config/14_SingleNumber.ini" #define FileName_15 "../Alogrithm/config/15_WordPattern.ini" +#define FileName_16 "../Alogrithm/config/16_ReverseBits.ini" namespace UnitTest @@ -294,4 +295,19 @@ namespace UnitTest } } }; + TEST_CLASS(UnitTest_16) + { + TEST_METHOD(TestMethode1) + { + char Section_Name[100][10] = { 0 }; + int Section_Count = CalcCount(100, Section_Name, FileName_16); + CString input,output; + for (int i = 0; i < Section_Count; i++) { + GetPrivateProfileString(Section_Name[i], "Input", " ", input.GetBuffer(200), 200, FileName_16); + GetPrivateProfileString(Section_Name[i], "Output", " ", output.GetBuffer(200), 200, FileName_16); + uint32_t nReal = ReverseBits((uint32_t)_atoi64(input)); + Assert::AreEqual(nReal, (uint32_t)_atoi64(output)); + } + } + }; } diff --git a/Alogrithm/UnitTest/UnitTest.vcxproj b/Alogrithm/UnitTest/UnitTest.vcxproj index a837996..1e9fecc 100644 --- a/Alogrithm/UnitTest/UnitTest.vcxproj +++ b/Alogrithm/UnitTest/UnitTest.vcxproj @@ -103,7 +103,7 @@ Windows $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) DebugFull - ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;%(AdditionalDependencies) + ../Alogrithm/Debug/1_ContainsNearbyDuplicate.obj;../Alogrithm/Debug/2_ExcelSheetColumnTitle.obj;../Alogrithm/Debug/3_bool IsUgly.obj;../Alogrithm/Debug/4_IsPalindrome.obj;../Alogrithm/Debug/5_MinDepth.obj;../Alogrithm/Debug/6_ContainsDuplicate.obj;../Alogrithm/Debug/7_MaxDepth.obj;../Alogrithm/Debug/8_HammingWeight.obj;../Alogrithm/Debug/9_AddBinary.obj;../Alogrithm/Debug/10_BinaryTreePaths.obj;../Alogrithm/Debug/11_CanWinNim.obj;../Alogrithm/Debug/12_IsValid.obj;../Alogrithm/Debug/13_MyAtoi.obj;../Alogrithm/Debug/14_SingleNumber.obj;../Alogrithm/Debug/15_WordPattern.obj;../Alogrithm/Debug/16_ReverseBits.obj;%(AdditionalDependencies) diff --git a/Alogrithm/UnitTest/pch.h b/Alogrithm/UnitTest/pch.h index 1ff181a..4c93404 100644 --- a/Alogrithm/UnitTest/pch.h +++ b/Alogrithm/UnitTest/pch.h @@ -28,6 +28,7 @@ #include"../Alogrithm/include/13_MyAtoi.h" #include"../Alogrithm/include/14_SingleNumber.h" #include"../Alogrithm/include/15_WordPattern.h" +#include"../Alogrithm/include/16_ReverseBits.h" int CalcCount(int n, char(*str)[10],const char *FileName);