003_负数的二进制算法

wangjianme 贡献于2016-12-28

作者 Administrator  创建于2016-04-16 16:08:00   修改者HF  修改于2016-04-16 16:12:00字数1318

文档摘要:
关键词:

负数的二进制计算方法 原创:一叶知秋(真实姓名:王健) 最近,刚开始带一个新班,同学们对进制的换算一头雾水。更对负数的二进制形式算法不理解。于是在深夜写成本文,希望以帮到所有刚入门的小白们。 核心思想:一个负数的二进制表示形式,为它正数二进制形式的反码+补码。 1:将10进制转换成其他进制 所有数字在计算中都表示成二进制。 已知可以将一个10进制数转成二进制或是16进制和8进制: 以下是将78,转成对应的进制: 转成二进制: Java代码,可以直接使用Integer.toBinarayString将10进制转换成二进制: int a = 78; System.err.println(Integer.toBinaryString(a));//结果:1001110 转成16进制: Java代码,可以直接使用Integer.toHexString将10进制转成16进制: int a = 78; System.err.println(Integer.toHexString(a));//结果:4E 转成8进制: Java代码,可以直接使用Integer.toOctalString将一个10进制转成8进制: int a = 78; System.err.println(Integer.toOctalString(a));//结果为:116 2:负数的二进制 在计算机中,负数以正值的反码+补码形式表示: 示例1: int a = 4; 它的二进制形式为:(以下称为原码) 00000000 00000000 00000000 00000100 int b = ~a; 按位取反,即获取到 a的反码: 11111111 11111111 11111111 11111011 在反码的基础上加1,即加上补码,则为-4的二进制形式: 11111111 11111111 11111111 11111011+1= 11111111 11111111 11111111 11111100 即为-4的二进制形式。 示例2: 再看一个3与-3的二进制形式: 3的二进制形式: 00000000 00000000 00000000 00000011 3的反码 11111111 11111111 11111111 11111100 反码+1,即反码加上补码以后的结果为: 11111111 11111111 11111111 11111100+1=11111111 11111111 11111111 11111101 则 11111111 11111111 11111111 11111101即为-3的二进制形式。 示例3: 1的二进制形式:00000000 00000000 00000000 00000001 1的反码 :11111111 11111111 11111111 11111110 1反码+补码 :11111111 11111111 11111111 11111110+1=11111111 11111111 11111111 11111111 可见,-1的二进制形式,每一位都是1。 3:总结 1:正数的二进制第一位数字为0。 2:负数的二进制第一位数字为1。 3:将一个10进制数转成对应的进制,就是不断的取余数的过程。二进制取低位,8进制和16进制取高位。 4:一个数的负数=它的反码+补码1。 希望可以帮助到刚入门开始学java基础的同学。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档