<分区>
如何在 C 中获得 int 的补码?
例如,我有一个整数,例如 -254,我该如何将其转换为 100000010?
有什么方法可以从整数变量中取出二进制补码值吗?据我所知,在 C 中,整数存储在二进制补码中?
标签 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/