求补码最后的符号位(计算机计算补码时按位取反要不要算上符号位)

本文目录
计算机计算补码时按位取反要不要算上符号位
1.对于原码转换为补码是不算符号位的(我猜你问的就是这个)
不相信的话可以给你举个例子证明一下:
不妨取一个4-bit register,规定最高位为符号位,对于-1原码表示为1001;
对于补码,按位取反,末位+1
①假设符号位参与取反,那么补码为0111(按位取反得0110,末位+1得0111)。
此时符号位不是1,而是0,代表正数,显然错误。
其实对于补码,最高位符号位对应的权值是-8,所以0111真正代表数字为
-8*0 + 4*1 + 2*1 + 1*1 = +7
②假设符号位不参与取反,那么符号位不参与运算,补码为1111(按位取反得1110,末位+1得1111)。
结果为 -8*1 + 4*1 + 2*1 + 1*1 = -1
对于原码,最高位权值是-1(所以常常理解为就是一个负号),但是对于补码最高位权值是-2^n(不仅仅是一个负号)
2.对于补码表示的数字求相反数(相反数仍以补码形式表示),符号位是参与的。
举个例子:2-bit Register
-1补码表示为 11
求-1的相反数:每位都取反,末位+1得到-1相反数为01,即+1
如有错误,欢迎指出。
HITWH ---LEVI
输入两个八位补码,输出一个九位补码的结果,九位补码的最高位符号位怎么确定具体的算法,谢谢
对应各个位相加之后得到了九个数字,如1111 1100+1111 1011=11111 0111把第一位的1去掉,得1111 0111这就是答案,符号位就是答案中的第一位1,这是-4加-5的运算

更多文章:
sqlite格式的视频怎么打开(.sqlite是什么文件,用什么工具打开)
2026年11月7日 05:30
element ui面试题(用element-ui ELDialog和ELTable遇见的坑)
2026年11月7日 04:40
中文自动翻译成英语的输入法(有没有一种输入法能将打出来的中文自动变成英文)
2026年11月7日 02:10
equals to(为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗)
2026年11月7日 01:50
default values(电脑开机后出现all settings was reset to default values.)
2026年11月7日 01:20
structured reviewing翻译(软件测试的英文翻译)
2026年11月7日 00:50




