十进制转二进制基本模板(位运算)
运用了位运算一般代码很简单。
这里要清楚的一点是&运算符:
1&1 = 1, 1&0 = 0, 0&1 = 0, 0&0 = 1;
先上一段代码,很简单,不理解可以直接记模板:
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int main() 7 { 8 int n; //十进制数 9 scanf("%d", &n); 10 for(int i = 4; i >= 0; i--) 11 printf("%d", n>>i&1); 12 printf("\n"); 13 return 0; 14 }
其中i =31; i >= 0; i--表示二位数为000000000000000000000000000000(32位)
而这段代码的核心是位运算:n>>i&1;
这段代码的解释是,n为10进制数,n / 2的 i 次方,若为奇数则 n>>i&1 = 1, 为偶数则为 n>>i&1 = 0;
化繁为简 大巧不工