Java 源码,反码和补码
计算机在对数据进行运算的原理?
3 - 2 = 1
3 + (-2) = 1
先将3这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
先将-2这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
将这两个数二进制的补码形式参与运算会得到一个二进制补码形式
然后再将这个二进制的补码形式最终变回二进制的原码形式,然后再变成十进制,等得到 1
正数的原码反码和补码的转换规则?
正数的原码,反码和补码是一样的
负数的原码和反码和补码的转换规则?
负数的原码变反码,符号位不变,其余的0变1,1变0
负数的原码变补码,只需要+1
符号位:二进制的最左边的那一个位,就称为符号位,正数的符号位是0,负数的符号位是1
原码、反码和补码
3 - 2 = 1
3(十进制变为2进制)8bit -2
00000011 二进制的原码形式 10000010 二进制的原码形式
00000011 二进制的反码形式 11111101 二进制的反码形式
00000011 二进制的补码形式 11111112--> 11111110 二进制的补码形式(逢2进1)
3的补码和-2的补码 相当于进行相加
00000011
11111110
--------
100000001 一共就1个字节byte = 8bit 所以就去掉了前面进1的一位 = 00000001
00000001 二进制的原码形式
00000001 二进制的反码形式
00000001 二进制的补码形式
将二进制的原码形式 变十进制
= 1
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/18055502