[英]bitwise-and with HEX and CHAR in C
我真的很沮喪。 嘗試實現CRC-CCITT算法時,我在一個Internet站點上找到了一個很好的示例。
有一行我完全不了解其輸出:
unsigned short update_crc_ccitt( unsigned short crc, char c){
[...]
short_c = 0x00ff & (unsigned short) c;
[...]
}
我想計算"test"
字符串"123456789"
的CRC。 因此,在第一次運行中, short_c
'為1。根據我的理解,從第一次運行起, short_c
也應等於1
,但是當我將其打印到控制台時,對於c = 1
,我得到short_c = 49
。 怎么樣?
0x00ff in binary is: 1 1 1 1 1 1 1 1
char 1 in binary is: 0 0 0 0 0 0 0 1
bitand should be : 0 0 0 0 0 0 0 1
我的錯誤在哪里?
字符1
ASCII代碼為0x31 =49。這與ASCII代碼為1的字符(即^A
)不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.