结论:
无符号数在c语言中,与有符号数相比,只是改变了数据的解读方式,在手算过程中,我们可以将它作为熟悉的有符号数手算,最后以无符号数的方式解读
例子
八位字长的计算机 unsigned int x =134 unsigned int y =246 int a = x-y unsigned int b =x-y 求a,b
解答
x = 1000 0110b
y = 1111 0110b
无论是a还是b的计算我们都可以直接将减y编程加上-y的补码
因为对于两种数据解读方式而言,运算方式没有改变,我们以此为基础可以用原码的方式先计算
(y)原 = 1000 1010b
(-y)原 = 0000 1010b
(-y)补 = 0000 1010b
x + (-y) = 1001 0000 b
a和b的答案可以根据不同的解码方式得出
有符号数a = 1,001 0000 = -122d
无符号数b = 1001 0000 = 128+16=142d
如果觉得《有符号数和无符号数 无符号数的减法》对你有帮助,请点赞、收藏,并留下你的观点哦!