一.数的原码.补码和反码表示 机器数和真值 ​ 在计算机中,表示数值的数字符号只有0和1两个数码,我们规定最高位为符号位,并用0表示正符号,用1表示负符号.这样,机器中的数值和符号全"数码化"了.为简化机器中数据的运算操作,人们采用了源码.补码.反码及移码等几种方法对数值位和符号位统一进行编码.为区别起见,我们将数在计算机中的这些编码表示为机器数(如10000001),而将原来一般书写表示的数称为机器数的真值(如-0000001). 原码表示法 原码表示法是一种简单的机器数表示法,即符…
以2字节为例来说: 对于无符号的数值(原码反码及补码都一样),最大值为1111  1111  1111  1111=65535 最小值为0000  0000  0000  0000=0 对于有符号的来说较为复杂: 二进制原码最大为0111  1111  1111  1111=215-1=32767 二进制原码最小为1111  1111  1111  1111=-(215-1)=-32767正0和负0:0000000000000000=1000000000000000=0所以,二进制原码表示时,范…
/** * 二进制 binary 如: 1010 * 八进制 octal 如: 070 * 十六进制 hexadecimal 如: 0x7f * * 1Byte = 8bits * 1WORD = 2Bytes = 16bits "字" * 2WORD = 4Bytes = 32bits = 1DWORD "双字" * * 原码, 反码和补码 * 二进制原码中, 第一位代表符号位, 1为负(negative), 0为正(positive) * 正数: 原码 = 反码…
一.二进制,位运算,移位运算 1.二进制 对于原码, 反码, 补码而言, 需要注意以下几点: (1).Java中没有无符号数, 换言之, Java中的数都是有符号的; (2).二进制的最高位是符号位, 0表示正数, 1表示负数; (3).正数的原码, 反码, 补码都一样; (4).负数的反码=它的原码符号位不变, 其他位取反; (5).负数的补码=它的反码+1; (6).0的反码, 补码都是0; (7).在计算机运算的时候, 都是以补码的方式来运算的. 2.位运算 Java中有4个位运算, 分别…
参考: http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html http://blog.csdn.net/liushuijinger/article/details/7429197#comments 数值在计算机中是以补码的方式存储的,在探求为何计算机要使用补码之前, 让我们先了解原码, 反码和补码的概念. 对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是计算机存储一个具体数字的编码方…
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计…
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制…
<< 左移 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零. 格式 需要移位的数字 << 移位的次数 计算过程 1. 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零 2. 当左移的运算数是int 类型时,每移动1位它的第31位就要被移出并且丢弃: 3. 当左移的运算数是long 类型时,每移动1位它的第63位就要被移出并且丢弃. 4. 当左移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型. 1…
原码:就是我们自己看的,以及机器输出给我们看的 补码:机器永远是以补码的形式将数据保存在计算机中 正数: 原码=反码=补码 负数: 反码:原码的符号位不变,其他位取反 ,1变0   0变1 补码:机器存储数据的方式 等于 反码+1 例子: 96(默认int数据类型): 原码:00000000 00000000 00000000 01100000 共32位 补码:00000000 00000000 00000000 01100000 -96: 原码:10000000 00000000 000000…
尽管能查到各种文献,亲自归纳出自己的体系还是更能加深对该知识的理解.     本篇文章便是在结合百度百科有关原码.反码.补码和位运算的介绍并深度借鉴了张子秋和Liquor相关文章后整理而出.   目录:     一.机器数和真值     二.原码,反码和补码的基础概念     三.为什么要使用原码,反码和补码     四.原码,补码,反码再深入     五.数据溢出测试     六.位运算的运算说明     七.位运算的简单应用    一.机器数和真值       机器数(computer nu…