c - 如何在 C 中获取 int 的补码?

标签 c

<分区>

如何在 C 中获得 int 的补码?

例如,我有一个整数,例如 -254,我该如何将其转换为 100000010?

有什么方法可以从整数变量中取出二进制补码值吗?据我所知,在 C 中,整数存储在二进制补码中?

最佳答案

如果您在 unsigned int 上操作,那么您可以反转位 ~ 并添加 1 以产生 2s 补码值。 x=(~y)+1; 如果您的机器对 signed int 使用 2s 补码表示,那么这应该(根据实现的定义)转换为正确的 signed int 值。

C 语言本身在这方面的保证有点模糊。要可移植地处理对象的按位表示,您应该使用 unsigned 类型。

关于c - 如何在 C 中获取 int 的补码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36028198/

相关文章:

c++ - 如何使用 C++ 获取有关 Windows 可执行文件 (.exe) 的信息

c - 如何将文本文件中的该表输入到 C 中?

c++ - C/C++ 工作流引擎

c - 如何使用c套接字程序将捕获的数据包保存在LibreOffice Calc中而不是txt文件中?

c - 为什么特定的 C 数据类型在多个标准头文件中声明?

c - 如何修复非结构或 union 中的 "request for member ‘rank’”?

带指针的 calloc() 语法声明

c++ - 数组在 Visual C++ 中奇怪地存储从 GetVolumeInformation 检索到的名称?

c++ - Producer-Consumer 生产者创建 2 个元素 POSIX 信号量

c - 如何从 C 中的函数返回多个值?