哥们不好意思啊,这个是我写错了,前几天忙没来得及改,下面的是正确算法
数据130默认是int类型的十进制数据
第一步十进制的130转换成二进制数据
1 0 0 0 0 0 1 0
因为计算机的所有数据都是以补码形式运行的所以130的二进制也要变成补码,因为它是正数所以它的补码是它本身
第二步补码130是int类型是占4个字节的,所以在内存的表现形式是
00000000 00000000 00000000 10000010
做了截取后的结果为
10000010
这就得到了补码,所以要变回我们日常看到的原码
补码:1 0000010 补码变反码,就是补码加-1
反码:1 0000001 反码变原码,符号位不变,数值为1变0,0变1;
原码;1 1111110
最终的看到的结果就是
1 1111110最高为是符号位不运算,数值为转化为十进制是64+32+16+8+4+2=126符号位负
所以为-126 |