我已经很久没有在位和字节级别上编程了,想确认一下我似乎记得的东西:
假设我有两个长度相等的整数(1、2、4、8个字节;不重要),并将它们加起来:如果它们是有符号或无符号的,它们的按位结果是否会有所不同。换句话说:不管它们是有符号还是无符号整数,它们的位最终是否相同?
我的直觉和脆弱的记忆告诉我它们会相同,但我只是想确认一下。谢谢。
我已经很久没有在位和字节级别上编程了,想确认一下我似乎记得的东西:
假设我有两个长度相等的整数(1、2、4、8个字节;不重要),并将它们加起来:如果它们是有符号或无符号的,它们的按位结果是否会有所不同。换句话说:不管它们是有符号还是无符号整数,它们的位最终是否相同?
我的直觉和脆弱的记忆告诉我它们会相同,但我只是想确认一下。谢谢。
我知道这个问题已经被回答了,但是我曾经使用过的所有处理器(大约有十几种不同的架构 - 我指的是架构而不是不同的风味)只有一种类型的ADD指令 - 它可能有不同的大小选项,但它是唯一的指令。减法也是如此。乘法和除法上则不同,通常具有有符号和无符号的变体 - 或以某种方式要求输入进行“符号调整”。
唯一还区分有符号和无符号的其他指令是条件指令,例如:“小于跳转”将具有一个用于“无符号小于”的变体和一个用于“有符号小于”的变体(其中一个通常被称为“小于”的其他名称,例如“以下”或“进位设置”等)。