是 2s 补码存储负数的一种方式
Is 2s complement a way to store negative number?
我读了很多文章和SO答案来理解2s complement
。他们帮助了我很多。但是,我对2s complement
几乎没有怀疑.
1)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 补码
- 我正在寻找一种优雅的方式来从元组向量创建tuple_element向量
- C++|以一种很好的方式将树(不一定是二进制的)打印到stdout
- 只需要知道我在c ++中打印模式的方式是否有效,或者有另一种方法可以有效地做到这一点
- 使用typedef作为一种方便替换类名的方式是一种误用吗
- 有没有一种递归的方式来制作这个字符串数组?
- C++:一种在列表中打印所有对的优雅方式
- Math.log是以一种避免log(1 x)的精度的方式实现的
- !=的另一种方式
- 以一种方式使用字符串选择(如果语句)
- 一种方式链接列表和不需要的第一个元素AFRTER填充
- 重载输入/输出运算符,为什么它以这种方式工作而不是以另一种方式工作
- 是 2s 补码存储负数的一种方式
- 是否可以以这样一种方式实现一个类,即可以将其值初始化为POD
- 部分类专门化只是编写完全专门化的另一种方式吗?
- 读取数组2维的另一种方式c++
- 从套接字接收消息的无限循环内ussleep的另一种方式
- c++ OOP哪一种方式给构造函数赋值更好
- 操作符只能以一种方式定义——c++
- 是他们编译一个项目的一种方式,这样你的所有函数类都可以.进入一个可以链接的文件
- 推入堆栈的另一种方式