来源:网络 | 2020-4-18 | (有2023人读过)
在C/C++中,0x为十六进制的前缀标识,0位八进制的前缀标识,十进制没有前缀标识。
因此,那些奇怪的字符为整数的十六进制表示。有那么多的整数,为何在涉及位操作程序中会出现这些整数呢。
因为这些整数的二进制形式很特殊,可以借助Windows系统自带的计算器,快捷计算出该整数的二进制形式
0xaaaaaaaa = 10101010101010101010101010101010 (偶数位为1,奇数位为0)
0x55555555 = 1010101010101010101010101010101 (偶数位为0,奇数位为1)
0x33333333 = 110011001100110011001100110011 (1和0每隔两位交替出现)
0xcccccccc = 11001100110011001100110011001100 (0和1每隔两位交替出现)
0x0f0f0f0f = 00001111000011110000111100001111 (1和0每隔四位交替出现)
0xf0f0f0f0 = 11110000111100001111000011110000 (0和1每隔四位交替出现)
利用上述具有特殊二进制的整数,可以很方便进行位操作,而且该整数的十六进制形式比较好记,也不用写那么多的0,1.
|