计算机基础,

3个回答

  • -76

    一个有符号定点数的最高位为符号位,0是正数,1是负数.正数的补码和其原码相同.补码 = 原码.所以,该数显然是负数.所以,该数表示十进制的真值是:256D-10110100B,10110100B转化为10进制数是128+32+16+4=180.

    所以256D-10110100B = 76 D.加个符号即可.即位机器码10110100'它是补码时'表示十进制的真值是 -76.

    详细理论:

    C语言、补码.

    1.任何数值是以补码存放在内存中的.

    2.正数的补码和其原码相同.补码 = 原码.

    3.负数的补码的两种求法:(假设8bit,即8位)

    (1).是将该数的绝对值的二进制形式,按位取反,再加1.

    例.求-10的补码.

    第一步是取-10的绝对值10;

    第二步取10的二进制形式为00001010;

    第三步对00001010取反得11110101;

    第四步再加1得11110110.

    所以-10在内存中就以11110110形式存放.

    (2).256-欲求的负数的绝对值 = 此负数的补码.注意:256 - 的是这个负数的绝对值,而不是这个数

    .也就是说 256 -|负数|=补码.求其原码,则 256 - 补码 = |负数| ,则原码需要把首位变为1即可.

    例.求-10的补码.

    第一步是 256 - |-10|=246.

    第二步把246变为二进制,11110110.

    所以-10在内存中就以11110110形式存放.

    两种方法比较下来,显然,第二种更为简便!

    4.反码:把每位取反,即0变1,1变0即可.

    5.一个有符号定点数的最高位为符号位,0是正数,1是负数.