有人可以解释为什么对带有0x0030的二进制数进行OR运算,因为操作数会产生该数字的ASCII字符吗?
答案 0 :(得分:4)
因为查看ASCII图表,数字0到9从0x30开始。所以你想要字符1的ASCII值? 0x30或0x01 = 0x31 =数字1的ASCII值。
In binary it's easy to see:
(0x30) 110000
or
(0x01) 000001
= 110001
Which is 0x31 - ASCII value of 1.
答案 1 :(得分:1)
如果您指的是数字0到9,原因是0x30
(或48)是数字0的ASCII代码。因为48只需要位于较高(左手)一侧的位。一个字节,将其与低于16(低位)的任何数字进行或运算与数学上添加数字相同。
因此0x30或0x01将给出0x31,即字符“1”的ASCII码,依此类推。
答案 2 :(得分:1)
查看单个数字的二进制表示:例如2d = 00000010b。对其应用带有0x30(00110000b)的OR运算。这导致00110010b为0x32或50d,这是'2'的ASCII码。实际上,在这种情况下(因为没有要考虑的进位),OR运算等于添加0x30。