我在这里重复了存储二进制代码的方式,我只是无法理解如何对两个数字执行算术运算:第一个有符号(有符号)第二个无符号(无符号)?毕竟,他们可能有相同的记录。
事实证明,对于有符号,最高有效位表示数字的符号,而对于无符号,最高有效位表示值本身。
但是如何理解其中哪些是有符号的,哪些是无符号的,因为数字的书写方式相同:例如,无符号的数字173(10101101)和有符号的数字-45(10101101)具有完全相同的符号。
在这种情况下,我只考虑 8 位数字,即 -127 到 127 和 0 到 255。
程序员被迫处理数字的内部(二进制)表示的编程语言
signed为unsigned绝不允许一个操作数是类型
signed而另一个unsigned是类型的操作:正如您正确写的那样,无论是人还是计算机都不能仅根据数字的二进制表示来确定它是有符号还是无符号。因此,在C/C++等语言中,必须先定义数字,即使定义中没有
signedor时unsigned,仍默认为其中之一。另一方面,在像 Python 这样的语言中,您没有定义任何东西,您只是编写
x = 173或x = -45不知道(也不应该知道)任何关于其内部表示的内容。不一定是那样。例如,无符号短
采取签名短
一般来说,如果你在二进制数系统中取两个相同的数字,那么一切都将由数据类型决定。
在这里,例如,在这里玩转不同数字系统的翻译