关于二进制原码和补码和原码的转化问题

求给定数值的补码和原码的转化汾以下两种情况:

正整数的补码和原码的转化是其二进制表示与原码相同。

例:+9的补码和原码的转化是(备注:这个+9的补码和原码的轉化是用8位2进制来表示的,补码和原码的转化表示方式很多还有16位二进制补码和原码的转化表示形式,以及32位二进制补码和原码的转化表示形式64位进制补码和原码的转化表示形式等。每一种补码和原码的转化表示形式都只能表示有限的数字)

求负整数的补码和原码的轉化,将其原码除符号位外的所有位取反(0变11变0,符号位为1不变)后加1

同一个数字在不同的补码和原码的转化表示形式中是不同的。仳如-15的补码和原码的转化在8位二进制中是,然而在16位二进制补码和原码的转化表示中就是0001。以下都使用8位2进制来表示

-5对应正数5()→所有位取反()→加11011)

数0的补码和原码的转化表示是唯一的。

已知一个数的补码和原码的转化求原码的操作其实就是对该补码和原码的轉化再求补码和原码的转化:

⑴如果补码和原码的转化的符号位为“0”,表示是一个正数其原码就是补码和原码的转化。

⑵如果补码和原码的转化的符号位为“1”表示是一个负数,那么求给定的这个补码和原码的转化的补码和原码的转化就是要求的原码

例:已知一个補码和原码的转化为,则原码是(-7)

因为符号位为“1”,表示是一个负数所以该位不变,仍为“1”

其余七位1111001取反后为0000110;再加1,所以昰

首先计算机都是使用二进制的補码和原码的转化进行计算。

1、正数的二进制原码、反码、补码和原码的转化都是相同的

2、负数的二进制原码:负数的绝对值的二进制的朂高位变为1(1是标志位只用来表示正负,1表示负数0表示是正数。所以八位二进制的取值范围是[-127,127])其余位与正数原码相同。

第一步:32(10)=(2)

第二步:最高位变为1:

3、负数的反码:等于原码的最高位不变其余取反。

4、负数的补码和原码的转化:等于原码的最高位不变其余取反,然后加一

第二步,最高位不变取反:

怎样将二进制补码和原码的转化轉化为原码

如,怎样将二进制补码和原码的转化0等化为原码的形式?

有现成的函数能直接转换吗

 

我要回帖

更多关于 补码和原码的转化 的文章

 

随机推荐