2012-10-15 59 views

回答

4

因爲看着ASCII圖表,數字0到9從0x30開始。所以你想要字符1的ASCII值?該號碼的0x30或0×01 = 0X31 = ASCII值1

In binary it's easy to see: 

(0x30) 110000 
or 
(0x01) 000001 
=  110001 

Which is 0x31 - ASCII value of 1. 

enter image description here

+1

所以這隻會工作0到9 – Zzz

+0

那麼它在將信號數字轉換爲ASCII等效值的情況下當然最有意義。 – Chimera

1

如果通過9參考編號0,其原因是0x30(或48)是的ASCII碼數字0.由於48只需要位於字節較高(左手側)的位,所以使用低於16位(低位)的任何數字對它進行或運算與數學加數相同。

所以0x30 OR 0x01會給出0x31,字符'1'的ASCII碼,依此類推。

1

看看一個數字的二進制表示: 2d = 00000010b。對其應用0x30(00110000b)的OR操作。這導致00110010b是0x32或50d,它是'2'的ASCII碼。實際上,在這種情況下(因爲沒有需要考慮的進位),OR操作等於加上0x30。