写出下列十六进制数在被看作是有符号数和无符号数时的十进制值!

1个回答

  • 0x85用8421转换为二进制为:

    10000101(源码)

    01111010(反码)

    01111011(补码)

    负数在计算机中是用补码表示的,

    01111011用权求得十进制值为123D

    0* 2^(7) + 1* 2^(6) + 1* 2^(5) + 1* 2^(4) + 1* 2^(3) + 0* 2^(2) + 1* 2^(1) + 1* 2^(0),前面加负号就是-123D;

    无符号数直接转换成十进制,为8*16^(1)+5*16^(0)=133D.

    PS:不知道你给的答案是错误的还是什么原因,十六进制的85H转换为十进制不可能只有两位数,况且,8位二进制最多只能表示256个数,不可能无符号数只是55D~

    按照前面的推理:

    0x57如果是无符号数,直接转换为原码,5*16^(1)+7*16^(0)=87D

    0x57转换为二进制:

    01010111(原码)

    10101000(反码)

    10101001(补码)

    因此有符号数得到的值是:169D