将代表一个十六进制数的char数组从最高符号位逐个取出

在写性能测试的时候,需要将一个很长的十六进制数按照每四个字节一组存入寄存器。于是构造了一个char数组存放该数。

使用`printf("0x%02x ", text[i]);`将每个字节打印出来,却发现对于`0xf0 0xf1`等以f为开头的字节,打印时会变成`0xffff ffff`。

原来对于x来说,匹配的是无符号整型,而char有符号,当符号位为1时,会进行提升,多出来的四bit按照符号位填充。

posted @ 2023-11-20 09:20  识弦  阅读(35)  评论(0)    收藏  举报