Tags 这行代码的作用是什么?Const uint32\u t goodguys=0x1<&书信电报;0
有人能告诉我这里正在做什么吗:Tags 这行代码的作用是什么?Const uint32\u t goodguys=0x1<&书信电报;0,tags,Tags,有人能告诉我这里正在做什么吗: Const uint32_t goodguys = 0x1 << 0 Const uint32\u t goodguys=0x1好吧,如果在您发布的代码后面有更多类似于此的行,那么它们可能是位掩码 例如,如果您具备以下条件: const uint32_t bit_0 = 0x1 << 0; const uint32_t bit_1 = 0x1 << 1; const uint32_t bit_2 = 0x1 <<
Const uint32_t goodguys = 0x1 << 0
Const uint32\u t goodguys=0x1好吧,如果在您发布的代码后面有更多类似于此的行,那么它们可能是位掩码
例如,如果您具备以下条件:
const uint32_t bit_0 = 0x1 << 0;
const uint32_t bit_1 = 0x1 << 1;
const uint32_t bit_2 = 0x1 << 2;
...
因此,您的0x1
只是一种将goodguys
指定为位掩码的方法,因为十六进制0x
指示器表明代码的作者专门考虑位,而不是十进制数字。然后是
- 虽然以10为基数是在程序中写入数字的正常方式,但有时您希望以八进制或十六进制表示数字。要以八进制写入数字,请在值前面加0。因此,023实际上意味着10进制中的19。要以十六进制形式写入数字,请在值前面加上0x或0x。因此,0x23实际上意味着基数10中的35
所以
goodguys=0x1;
真的和
好人=1
- 按位移位运算符将其第一个操作数向左移位()第二个操作数指定的位置数。请看以下两个陈述
goodguys=0x1
好家伙们,嗯。。。它将值1
分配给goodguys
?我们还能告诉你什么?好吧,我知道这会招致一些批评,但我不得不问。为什么是0x1?你就不能写下:警察的好人=1;我可能有答案。:)goodguys=0x100
与goodguys=4
不同,但在其他方面答案很可靠。@Vulcan,为什么0x100不等于4?我原以为100=2^2在二进制中表示4?@AnsonL100
在二进制中是4
在十进制中,但0x100
是十六进制(以16为基数),它在十进制中等于256
。
const uint32_t num = 5;
...
bool bit_0_on = (num & bit_0) != 0;
bool bit_1_on = (num & bit_1) != 0;
bool bit_2_on = (num & bit_2) != 0;
...