zoukankan      html  css  js  c++  java
  • java的移位和异或运算

    Java移位运算种类

    基础:我们知道在Java中int类型占32位,可以表示一个正数,也可以表示一个负数。正数换算成二进制后的最高位为0,负数的二进制最高为为1
    例子:
    -5换算成二进制后为:1111 1111 1111 1111 1111 1111 1111 1011
    负数的二进制如何换算过来的?
    负数转换为二进制,就是将其相反数(正数)的补码的每一位变反(1变0,0变1)最后将变完了的数值加1,就完成了负数的补码运算。这样就变成了二进制。
    5换算成二进制后为:0000 0000 0000 0000 0000 0000 0000 0000 0101

    1. 右移 >>
      正数右移,高位补0
      例子:5>>3 -->0000 0000 0000 0000 0000 0000 0000 0000 0000 -->0
      负数右移,高位补1
      例子:-5>>3 -->1111 1111 1111 1111 1111 1111 1111 1111 -->-1
    2. 无符号右移 >>>
      无符号右移,高位补0
      例子:-5>>>3 -->0001 1111 1111 1111 1111 1111 1111 1111 -->536870911
    3. 正负数左移<<
      正负数左移都是低位补0
    4. 位异或
      位异或:第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0
  • 相关阅读:
    《民工》随笔
    最近繁忙,暂停更新
    UVA 839 Not so Mobile
    UVA 310 Lsystem
    UVA 10602 Editor Nottoobad
    UVA 10562 Undraw the Trees
    UVA 327 Evaluating Simple C Expressions
    UVA 10954 Add All
    UVA 270 Lining Up
    UVA 699 The Falling Leaves
  • 原文地址:https://www.cnblogs.com/james0/p/7908310.html
Copyright © 2011-2022 走看看