【发布时间】:2013-04-29 07:09:46
【问题描述】:
我很难理解从无符号转换为二进制补码时截断的工作原理。有人可以解释一下吗? (我的 textook 使用了将 4 位值截断为 3 位值的示例,并说 -1 变为 -1,但 -5 变为 3)。
【问题讨论】:
-
这取决于您是否有无符号值、有符号值等...您有示例吗?
-
在不知道您的教科书如何解释的情况下,是什么让您认为这里的任何解释可能更清楚?我什至不清楚您所说的“截断”是什么意思。如果该值是无符号的,那么在您的示例中,源如何是 -1 或 -5 - 它们都是有符号值?
-
我认为@Pascal Cuoq 在理解和回答您的问题方面做得很好,但如果这确实是答案,这不是“无符号到二进制补码”转换的问题,而是从较大的二进制补码到较小的二进制补码类型的转换之一 - 在本例中为 4 位到 3 位。无论哪种方式,这都不是真正的“转换”,而仅仅是对位模式的重新解释。
标签: c binary integer twos-complement truncation