struct in_addr ipv4;
ipv4.s_addr = (uint32_t)(-0)
最佳答案
奇怪,通常算术都是通过Two's Complement来实现的所以你实际上没有 0
的否定表示。
在 One's Complement 版本中,负数 0
被存储为 0xFFFFFFFF
因此您将拥有 255.255.255.255
在转换为 unsigned int 后转换为 ipv4 地址时。
虽然在普通架构中使用 -0
将其转换为 unsigned int 应该只会给你 0x00000000
。
关于c - 在这种情况下如何使用负零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3884080/