十六进制语法符号

时间:2013-04-02 13:06:27

标签: c hex

当我输入一个字节为十六进制时:

  

0x10的

是否与以下相同:

  

〜0x10的

有什么区别?

2 个答案:

答案 0 :(得分:7)

~0x10为您提供的不是0x10,即0xEF

0x10二进制文件为00010000。如果不是这样,就会给你11101111 - 0xEF十六进制

如果您将0x10分配给大于一个字节的类型,则反转其位会将其最低有效字节设置为0xEF,将其他字节设置为0xFF

答案 1 :(得分:0)

~unary bitwise complement运营商。您可以在C规范的6.5.3.3中阅读所有相关内容,但简而言之,它是一元的,因为它适用于一个操作数;而它将翻转位。另外,它对操作数执行整数提升。

因此,在您的情况下,操作数的值为10 16 ,即00010000 2 。因为它只有8位,所以你可能在char类型中拥有它。使用~运算符(结合整数提升)将导致1111111111101111 2 (位被翻转)。