java的二进制及其位运算_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java的二进制及其位运算

java的二进制及其位运算

 2014/12/1 15:34:20  ya1139569539  程序员俱乐部  我要评论(0)
  • 摘要:计算机的数字系统人们最熟悉的是十进制数,但是在计算机内部采用的是二进制数,所有的外界信息在被转化为不同的二进制数后,计算机才能对其进行传送,储存和加工处理。二进制数的编码表示一个数在机内的表达形式称为“机器数”,而它代表的数值被称为此机器数的“真值”。在计算机内如何表示数的正负呢?一般情况下,用“0”表示正号,“1”表示负号,符号位放在数的最高位。例如,8位二进制数A=(+1011011),B=(—1011011),它们在机器中可以表示为:A:01011011B
  • 标签:Java 二进制
计算机的数字系统
    人们最熟悉的是十进制数,但是在计算机内部采用的是二进制数,所有的外界信息在被转化为不同的二进制数后,计算机才能对其进行传送,储存和加工处理。
    二进制数的编码表示
一个数在机内的表达形式称为“机器数”,而它代表的数值被称为此机器数的“真值”。在计
算机内如何表示数的正负呢?一般情况下,用“0”表示正号,“1”表示负号,符号位放在数的最高位。
例如,8位二进制数A=(+1011011),B=(—1011011),它们在机器中可以表示为:
A:01011011    B:11011011
    数值信息在计算机内采用符号数字化处理后,计算机便可以识别和表示数符了。为了改进符号数的运算方法和简化运算器的硬件结构,人们研究了符号数的多种二进制编码方法,其实质是对负数表示的不同编码。
下面介绍几种常用的编码——原码,反码和补码
1.原码
  将符号位数字化为0或1,数的绝对值与符号一起编码,即所谓“符号——绝对值表示”的编码,称为原码
例如2的原码表示为0000 0010 负2的原码表示为1000 0010
反码
反码很少使用,但是作为一种编码方式和求补码的中间代码,我们还是要了解一下的。
正数的反码与原码表示相同
负数的反码与原码有如下关系:负数反码的符号位与原码相同(仍用1表示),其余各位取反(0变1,1变
0)。
补码
计算机系统中,数值一律用补码来表示(存储)。
主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补
码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
补码与原码的转换过程几乎是相同的。
数值的补码表示也分两种情况:
(1)正数的补码:与原码相同。
      例如,+9的补码是00001001。
(2)负数的补码:符号位(最高位)为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
      例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码
     0000111按位取反为1111000;再加1,所以-7的补码是11111001。
已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。
按位caozuofu.html" target="_blank">操作符
    按位操作符是用来操作整数基本数据类型中的单个(bit),即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
    按位操作符来源于C语言面向底层的操作,在这种操作中经常需要直接操纵硬件,设置硬件寄存器内的二进制位。java把这种面向底层的操作保留了下来,但是可能不会过多的使用。
按位&(与)
必须要两个输出位都是1,才能生成一个输出位1,否则生成一个输出位0;
按位|(或)
  只要有一个输出位为1,就能生成一个输出位为1,只有两个输出位都为0,才能生成一个输出位为0;
按位“~”(非)
这个也称为取反操作符。按位“非”生成与输出位相反的值——若输入为0,则输出为1,若输入为1,则输出为0;
发表评论
用户名: 匿名