位移运算符 "<<" ">>"
针对“>>” 无符号的右移后,高位填零。
带符号的,右移的或是或不是逻辑位,所以行为不定。
注意,移动运算符的位数不要超过操作数的位数,否则会出行不定行为。
用二进制打印字节
C++ Code
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream>
using namespace std; void printBinary(const unsigned char val) { for (int i =7;i>=0;i--) { if (val&(1<<i))//例如(1<<5)相当于00000001 移位后成为000100000 在与val按位与 { std::cout<<"1"; } else std::cout<<"0"; } } void main() { char a ='a'; printBinary(a); system("pause"); } |