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 fb10a07..23aac16 100644
Binary files a/Alogrithm/.vs/Alogrithm/v16/.suo and b/Alogrithm/.vs/Alogrithm/v16/.suo differ
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);