为什么在c语言中对0进行取反会得到ffffffff

为什么在c语言中对0进行取反会得到ffffffff
2025-02-22 15:41:13
推荐回答(2个)
回答1:

你所使用的编译器是32位的,其记录0用了32位的二进制即
0000 0000 0000 0000 0000 0000 0000 0000
把它们取反,所有的0变成1即
1111 1111 1111 1111 1111 1111 1111 1111
写成十六进制就是是ffffffff

回答2:

一个f是4位,那么8个就是32位了,这是存储字节的问题,跟数据类型和操作系统有关
32位的0就是00000000这个是十六进制的0
32位的非0就是全为1那就是ffffffff十六进制,化成二进制就是32个1