Syntax 什么是「;0xXXXX";学习位操作时的语法?(其中X是大写字母数字字符)
在学习了基础知识和一些解决方案之后,我试图通过做一些问题来学习位操作,我似乎看到了这种格式。例如:Syntax 什么是「;0xXXXX";学习位操作时的语法?(其中X是大写字母数字字符),syntax,bit-manipulation,bit,Syntax,Bit Manipulation,Bit,在学习了基础知识和一些解决方案之后,我试图通过做一些问题来学习位操作,我似乎看到了这种格式。例如: N = (N & 0xAAAA)>>1 | (N & 0x5555)<<1 N=(N&0xAAAA)>>1 |(N&0x5555)。“0x”表示它是一个十六进制数,其余数字是值。前缀0x是许多系统和语言中使用的标准约定,例如C及其子体、Unix Shell、Windows Powershell AAAA等于以10为基数的43690(标准十进制)。类似地,0
N = (N & 0xAAAA)>>1 | (N & 0x5555)<<1
N=(N&0xAAAA)>>1 |(N&0x5555)。“0x”表示它是一个十六进制数,其余数字是值。前缀0x是许多系统和语言中使用的标准约定,例如C及其子体、Unix Shell、Windows Powershell
AAAA等于以10为基数的43690(标准十进制)。类似地,0x5555=21845。十六进制是在按位操作(这是代码中发生的事情)期间使用的一个常用基数,因为基数是二的幂,并且它比二进制更紧凑。这些是十六进制值。0xAAAA相当于1010101010。A=1010(二进制)。所以4A是四个二进制值序列
当你把它和一个二进制&结合起来,你会寻找与模式1010一致的所有N位。。。其中两个位均为1,并仅保留这些位
例如:
1110101010101001
& 1010101010101010
------------------
1010101010101000
0x5555也是如此。5 = 0101. 希望你能明白
另一方面,二进制或运算符在二进制数具有1的每个位置返回1,如:
1010
| 0101
------
1111
位移位运算符(>>和那些是十六进制值。每个字符代表1-16,所以0-9然后是A->F。这基本上是数字的基数16表示法。通常人类使用基数10,但在计算机中,基数2和基数16非常常见。