c - 在这种情况下如何使用负零?

标签 c networking

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/

相关文章:

C 程序将 2 个整数相加产生异常输出

c - 初学者的程序总是崩溃

Windows 10 作为主机 VMware Workstation 12 Player 无桥接适配器 (vmnet0)

java - 服务器UDP和端口绑定(bind)

java - 如何从 Android 应用程序检测 WiFi 网络中连接的所有设备

c++ - 两台计算机与 2 个 c++ 程序之间的通信

java - 如何在 java 中获取 URLConnection 的客户端端口

python - 如何使用 Python.h 文件来制作 python C 扩展

C 两个玩家之间的视觉输出猜谜游戏

c - 如何将 char 指针数组的索引设置为 char 指针?