1. 首页
  2. > 公司注册 >

若二进制数的原码为101010(二进制数1010101对应的十进制数是)

1、计算机在任何情况下都只能识别二进制


2、计算机在底层存储数据的时候,一律存储的是“二进制的补码形式”,计算机采用补码形式存储数据的原因是:补码形式效率最高。


3、记住:对于一个正数来说:二进制原码、反码、补码是同一个,完全相同。


int i = 1;


对应的二进制源码:00000000 00000000 00000000 00000001


对应的二进制反码:00000000 00000000 00000000 00000001


对应的二进制补码:00000000 00000000 00000000 00000001


对于一个负数来说:二进制原码、反码、补码是什么关系呢


byte i = -1


对应的二进制源码:10000001


对应的二进制反码(符号位不变,其它位取反):11111110


对应的二进制补码(反码 1):11111111






下面我们通过题目来练习一下,请输出以下代码打印结果:


byte b = (byte)150; System.out.println(b);


我们先通过运行程序看下结果



最终结果为-106


我们慢慢来分析下原因:


1、整数150已经超过了byte类型的取值范围,所以强转的时候会出现精度损失的情况;


2、150的二进制:00000000 00000000 00000000 10010110


3、int是4个字节,byte是1个字节,所以需要截取掉前3个字节:10010110


4、正数的源码,反码,补码都一样;现在的10010110是一个负数,所以我们要经过一轮的转换才可以得到它的源码


补码:10010110


号码:10010101


源码:11101010


11101010 = 64 32 8 2 = 106


二进制的最左边的一位代表正负数,1:负数,0:正数


所以为-106


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息