首页 源码 正文

3的补码的源码,3的二进制补码怎么算

2024-06-17 09:06:49 36 0
admin

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

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

3、记住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);

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

3的补码的源码

最终结果为-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

收藏
分享
海报
0 条评论
36

本站已关闭游客评论,请登录或者注册后再评论吧~