1. 原反补
(1) 计算机中数都是用补码来存储的,由于无符号类型和有符号的整数补码是其本身,则补码主要为负数设计,
(2) 采用补码,可以是负数的符号位参与运算,从而方便的用加法实现减法(CPU中只有加法器)。
例: 2-1=1; 2的补码为2,-1的补码为1111 1111;之后相加,为
1 0000 00001 ,最高位符号位溢出舍去,故结果为 0000 0001 即为 1;
(3) 负数(除-128外)的补码求法(注: 只是一种方便求补码的方法,计算机内部并不是这样) ; 先求其反码 (符号位不变,其他位安位取反);
再在反码的基础上加1;
(4) 二进制数中, 两数的补码之和等于两数和的补码;
(5) 8位无符号可表示范围 0 ~ 255 ;8位有符号表示范围 -128 ~127; 也就是说 1000 0000 ~ 0111 1111(都是补码) 可表示 -128 ~127;1000 0000 (补码)表示 -128;1000 0001 表示-127;(要注意,计算机中都是用补码表示数的);
(6 ) 对于-128 的原码 补码分析,
如果安取反加一的方法,不能求-128的原码,补码。而取反加一只是
人为的方便原码补码转换的方法,并不是计算机采用的。
计算机中数的存储和运算都是补码形式,不用考虑什么原码,什么取反加一。只要知道用补码表示哪个有符号数就行,至于怎么表示的计算机内部有算法,但不是什么取反加一。
(1) 计算机中数都是用补码来存储的,由于无符号类型和有符号的整数补码是其本身,则补码主要为负数设计,
(2) 采用补码,可以是负数的符号位参与运算,从而方便的用加法实现减法(CPU中只有加法器)。
例: 2-1=1; 2的补码为2,-1的补码为1111 1111;之后相加,为
1 0000 00001 ,最高位符号位溢出舍去,故结果为 0000 0001 即为 1;
(3) 负数(除-128外)的补码求法(注: 只是一种方便求补码的方法,计算机内部并不是这样) ; 先求其反码 (符号位不变,其他位安位取反);
再在反码的基础上加1;
(4) 二进制数中, 两数的补码之和等于两数和的补码;
(5) 8位无符号可表示范围 0 ~ 255 ;8位有符号表示范围 -128 ~127; 也就是说 1000 0000 ~ 0111 1111(都是补码) 可表示 -128 ~127;1000 0000 (补码)表示 -128;1000 0001 表示-127;(要注意,计算机中都是用补码表示数的);
(6 ) 对于-128 的原码 补码分析,
如果安取反加一的方法,不能求-128的原码,补码。而取反加一只是
人为的方便原码补码转换的方法,并不是计算机采用的。
计算机中数的存储和运算都是补码形式,不用考虑什么原码,什么取反加一。只要知道用补码表示哪个有符号数就行,至于怎么表示的计算机内部有算法,但不是什么取反加一。