您的位置 首页 > 科技

原码和补码的换算 c语言原码和补码的转换?

原码和补码的换算

原码和补码的换算 c语言原码和补码的转换?

c语言原码和补码的转换?

c语言原码和补码的转换?

换算方法如下:

1、数在计算机中是以二进制形式表示的。

2、数分为有符号数和无符号数,原码、反码、补码都是有符号定点数的表示方法。

3、一个有符号定点数的最高位为符号位,0是正,1是副;【原码】就是这个数本身的二进制形式。

4、正数的【反码】和补码都是和原码相同;负数的【反码】是将其原码除符号位之外的个位求反。

原反补码转换规则?

1、首先要知道,换算规则:原码转换为反码:符号位不变,数值位分别“按位取反” 。

2、接着反码转换为原码也是一样,但规则却有不同之处:符号位不变,数值位分别“按位取反”。

3、然后就是,原码转换为补码的规则:符号位不变,数值位按位取反,末位再加1。

4、最后补码转换为原码:符号位不变,数值位按位取反,末位再加1,即补码的补码等于原码。

5、而求补(变补)的换算规则与之前有所差别:符号位和数值位都取反,末位再加1。

-17的原码反码补码移码?

原码10010001,反码11101110,补码

11101111。

x = -17d = -10001b

若字长8位:

[x]原 =1001 0001b

[x]反 =1110 1110b

[x]补 =1110 1111b用八位二进制表示,最高位表示符号位,1为负,0为正。补码为其绝对值的原码取反加1,17原码为00010001,取反加1为11101110+1=11101111

原码与补码的转换:

1、首先要知道转换规则:将原代码转换为逆代码:符号位不变,数字位分别“按位倒转”。

2、反向代码转换也是如此,但规则不同:符号位保持不变,数字位“按位倒转”。

3、然后,原码转换为补码的规则:保持符号位不变,数字位逐位反转,最后一位加1。

4、将最后的补码转换为原码:保持符号位不变,数字位按位反向,最后一位加1,即补码的补码等于原码。

5、补码(变量补码)的转换规则与之前不同,将符号位和数字位颠倒,最后一位加1。

相关文章