问答详情
源自:5-1 java中的进制

有符号二进制转十进制

二进制数:11001111,无符号是十进制:207,有符号是十进制:-49(207-256),怎么理解这个“207-256”啊?

提问者:alwaysherewithme 2017-12-01 20:15

个回答

  • 诸葛云飞
    2017-12-11 23:40:35
    已采纳


    在本节中11001111是存放在字节byte中的,字节是8位,java中最高位表示符号位,所以byte的取值范围是-2^7~2^7-1,即1000 0000~0111 1111,十进制是-128~127.

    11001111(看作无符号十进制是207),这是补码,原码为00110001(看作无符号十进制是49),

    如果你把这个想象为无符号的(十进制也要想象为无符号,即-49为49),那相加为1 0000 0000即2^8=256,即所有的负值的byte的补码和源码想象为无符号的话之和为256