繁体   English   中英

2s是补数存储负数的方法吗?

[英]Is 2s complement a way to store negative number?

我已经阅读了许多文章和SO答案,以了解2s complement 他们对我有很大帮助。 但是,我对2s complement几乎没有疑问。

1) 2s complement是否2s complement一种存储负数的方式以使操作变得容易或也有其他应用程序?

2)当计算机看到负数时自动取2s complement码?

3)采用2s complement是-编译器的工作或由处理器完成还是什么?

4)在编译时,运行时或将值辅助变量时采用2s complement

我读过的文章是 (建议您更好地理解2s complement ):

什么是“ 2的补码”?

为什么用二进制补码表示负数?

http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html

1)是的。

2)计算机无法“看到”负数。 它可以看到大量的二进制数据。 您的应用程序具有智能地说“此二进制数据块是存储在2的compl中的整数”。 但是,世界上几乎每个CPU都支持2的补码算法。

3)编译器看到源代码,例如int32_t x = 0; 然后意识到该变量以二进制补码格式存储。 如果随后添加x = x - 1之类的代码,则编译器在生成程序时会选择使用支持2的补码的处理器指令。 处理器仅执行程序指示的操作。 它没有情报。

4)如上所述,这是一个编译时决策。 (不太确定“补码”是什么意思...)

2s是否补充一种存储负数的方式以便于操作?

是的,它是存储带符号数字(负数和正数,而不仅仅是负数)的一种方式

电脑看到负数时会自动补2s吗?

再次为负->签名。 取决于架构。 可以选择1、2或其他某种表示形式。

采用2s补码是-编译器的工作或由处理器完成还是什么?

编译器必须了解系统,处理器可能会也可能不会了解2s补码系统。

在编译时,运行时或将值辅助变量时采用2s补码?

可以在所有阶段(编译,运行)计算2s补码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM