Java学习之-位运算符

原创 2015年07月09日 00:21:48

Java中编码负数

    Java采用”2的补码“编码负数,它是一种数值的编码方法,要分二步完成,假设为1字节,实际通常采用int型4字节

第一步,每一个二进制位都取相反值,0变成1,1变成0。比如,+5的二进制编码是0000 0101,取反后就是1111 1010。

第二步,将上一步得到的值加1。1111 1010就变成1111 1011。所以,00001000的2的补码就是1111 1011。

     即-5在计算机中存储的是1111 1011,因此根据存储码计算值时过程为相反过程

第三步,将存储码1111 1011减一,1111 1011就变成1111 1010

第四步,每一个二进制位取反,1111 1010,取反后就是0000 0101


因此在进行负数的移位操作时,应记得将移位后的数据减一再取反计算其值

public class yunsuanfu {
    public static void main(String[] args) {
    
    	/*5二进制表示为0000 0000 0000 0000 0000 0000 0000 0101
    	 *-5二进制表示1111 1111 1111 1011 
    	 */
        // 1、左移( << ) 低位补0,相当于*2
        System.out.println(5 << 1);// 运行结果是10
 
        // 2、有符号右移( >> ) 高位补符号位
        System.out.println( 5 >> 1);// 运行结果是2
        System.out.println(-5 >> 1);// 运行结果是-3
 
        // 3、无符号右移( >>> ) 高位补0
        System.out.println( 5 >>> 1);// 结果是2
        System.out.println(-5 >>> 1);// 结果是2147483645
 
        // 4、位与( & ) 全为1则为1,否则为0
        System.out.println(5 & 1);// 结果为1
        System.out.println(4 & 1);// 结果为0
 
        // 5、位或( | ) 全为0则为0,否则为1
        System.out.println(5 | 4);// 结果为5
 
        // 6、位异或( ^ ) 不同则为1,相同则为0
         System.out.println(5 ^ 2);//结果为7
 
        // 7、位非( ~ ) 求反
        System.out.println(~5);// 结果为-6 
    } 




浅谈我对Java位运算符的了解

在JAVA程序里,支持位运算。 已知位运算有7种, —— 请看如下图。 左移运算,往左移动多少位,就是乘以2的多少位次幂。 特点:往左边移动,就是乘以。移动后的值,比原来的值大。 ...
  • xoptimal
  • xoptimal
  • 2014年12月22日 21:21
  • 297

Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

原文地址:http://blog.csdn.net/is_zhoufeng/article/details/8112199 位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面...
  • tanga842428
  • tanga842428
  • 2016年10月16日 09:33
  • 1148

Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面...
  • yin1031468524
  • yin1031468524
  • 2017年02月15日 17:22
  • 924

Java笔试题分类总结--位操作

位操作优点:在计算机中所有数据都是以二进制的形式储存的。 位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。位操作基础:基本的位操作符有"与"、"或"、"异或"、"取反"、"...
  • daidaineteasy
  • daidaineteasy
  • 2016年04月07日 15:22
  • 978

Java的算数运算符、关系运算符、逻辑运算符、位运算符

Java的算数运算符、关系运算符、逻辑运算符、位运算符 2015-04-12 02:57 17524人阅读 评论(1) 收藏 举报 本文章已收录于: 分类: java(51) ...
  • SuperStudet
  • SuperStudet
  • 2017年03月09日 08:56
  • 230

java按位运算符中的异或

java中用到按位运算符时,就是按照单个比特流,即二进制位。会将两个数据都转换成二进制的形式来将进行异或、或、与、非等操作。 按位运算的来源于C的低级操作。 作用:我们经常要操纵硬件,需要频繁设置硬件...
  • u014740342
  • u014740342
  • 2016年10月09日 21:37
  • 1119

Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)

位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面...
  • kunga0814
  • kunga0814
  • 2015年08月20日 12:01
  • 623

位运算符(&【按位与】,|【按位或】,^按位异或,~【按位取反】,<<【向左移动】,>>【向右移动】)

位运算 在这里,将小结一下位运算符的运算,废话就不这么多了 位运算符有按位与(&),按位或(|),按位异或(^),按位取反(~),向左移动(>) 现在给出两个变量,$m=8,$n=12;问:...
  • pan_xi_yi
  • pan_xi_yi
  • 2015年05月23日 13:02
  • 1305

JAVA 位运算符和位移运算符

java位运算符包括  &(与)       AND  |(或)       OR  ^(异或)     XOR  ~(非)       NOT  位移运算符包括  >>(右移)  >>>(右移,...
  • wqhjfree
  • wqhjfree
  • 2015年06月01日 13:35
  • 1273

PHP位运算符详解

位运算符位运算符是指对二进制位从低位到高位对齐后进行运算。 符号 作用 举例 个人理解 & 按位与 $m & $n 全1为1,否则为0 | 按位或 $m | ...
  • qq_28602957
  • qq_28602957
  • 2016年08月07日 10:46
  • 3278
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java学习之-位运算符
举报原因:
原因补充:

(最多只允许输入30个字)