有关计算机的问题,急啊~~~

来源:百度知道 编辑:UC知道 时间:2024/05/24 22:36:10
什么是原码?什么是补码?
计算机是怎么读取数据的啊???

一字节数据可表示的范围是0--255,那么负数又怎么表示呢?原来在计算机中是这样规定的,用一个数的最高一位表示正负,0为正,1为负.如0111,1111转换为十进制为127,1111,1111为-127,由此我们知一字节的范围为-127--127,其他字节的范围类推.
??
上面讲的都是原码表示法,可在计算机中的数据都是以补码存放的,只有这样才能减轻cpu的负担.提到补码,就不得不提反码了.计算机中是这样规定反码的,如果是正数,则按原码形式不变,如127仍为0111,1111;而如果为负数则,第一位为1,其他各位取反(即0变为1,1变为0),如原码-127(1111,1111),表示为1000,0000.
??
补码同上,如果是正数,则按原码形式不变,如127仍为0111,1111;如果为负数则除第一位为1外,其他各位取反加1,如-127,先取反为1000,0000,然后加1,为1000,0001.但1000,0000比较特殊,用它来表示-128,由此我们知补码可表示的范围是-128--127.
??
如果是正数,则原码、反码、补码是一样的,否则,最高位不变,其他的取反就是反码,反码加1就是补码。

在生活中表示数的时候一般都是把正数前面加一个“+”,负数前面加一个“-”,但是在数字设备中,机器是不认识这些的,我们就把“+”用“0”表示,“-”用“1”表示。原码、反码和补码。这三种形式是怎样表示的呢?如下所示:
真值 原码 反码 补码 例1:求+12和-12八位原码、反码、补码形式
它们的原码分别为[+12]=00001100[-12]=10001100
它们的反码分别为[+12]*=00001100
[-12]*=(28-1)+(-1100)=11110011
它们的补码分别为[+12]**=00001100
[-12]**=28+(-1100)=11110100

正数 +X 0X 0X 0X
负数 -X 1X (2n-1)+X 2n+X

但是那个数据读取你说的能否说的详细点啊?其实这些问题你完全可以靠自己来解决的!自己多弄弄把!