美文网首页JAVA基础
Java,二进制运算规则

Java,二进制运算规则

作者: heheworld | 来源:发表于2019-08-02 18:20 被阅读0次

最近调试封装蓝牙指令涉及到二进制运算
备忘:

  • 异或(^),

对应位如果相同,结果为0,否则为1。
示例:

int a = 0x66 ;    
int b = 0xff ;
int c = a^b;

//输出结果 应该是 0x99 
//01100110^11111111=10011001;
  • 与(&),

参与运算的两位都为1,结果为1,否则为0。
示例:

int a = 0x66 ;    
int b = 0xff ;
int c = a&b;
//输出结果 应该是 0x66 
//01100110&11111111=01100110;
  • 或(|),

参与运算的两位只要有1位为1,结果为1,否则为0。
示例:

int a = 0x66 ;    
int b = 0xff ;
int c = a|b;
//输出结果 应该是 0xff 
//01100110|11111111=11111111;
  • 取反(~),

当前位为1,则输出0,当前位为0,则输出1。
示例:

int a = 0x66 ;    
int c = ~a;
//输出结果 应该是 0x99,或者 10011001;
  • 左移(<<),

将一个运算对象的各二进制位全部左移若干位,左边的二进制位丢弃,右边补0
示例:

int a = 0x66 ;
a = a <<2;
//输出结果 应该是 10011000,

如果左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。

  • 右移运算符(>>),

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
示例:

int a = 0x66 ;
a = a >> 2;
//输出结果 应该是 00011001,
//操作数每右移一位,相当于该数除以2
  • 负数的二进制,

先取绝对值,转成二进制后取反,末位再加一。
示例:

int a = -17;
//输出结果 11101111,或0xef;
//-17 -> 17 -> 00010001 -> 11101110 -> 11101111;

相关文章

  • Java,二进制运算规则

    最近调试封装蓝牙指令涉及到二进制运算备忘: 异或(^), 对应位如果相同,结果为0,否则为1。示例: 与(&), ...

  • 笔记

    Java中常用的计算方法 Java异或运算总结 异或运算的性质: 异或运算是基于二进制的位运算,采用符号XO...

  • 计算机组成原理--与 或 异或运算 左移 右移运算

    与运算 (“ & ”)参与运算的两个数据,按照二进制位进行“与运算”。运算规则:0&0=0; 0&1=0; ...

  • Java运算符

    &(按位与运算符) &(按位与)的运算规则是将两边的数转换为二进制位,然后运算最终值,运算规则即(两个为真才为真)...

  • Java位运算符及二进制常识(转)

    一、位运算 二、位移运算 三、二进制数 以Java中最常使用的int类型为例(32位)。 ㈠ 符号位 二进制数最左...

  • 与、或、异或运算

    与、或、异或运算 1.与运算(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则:0&0=0;0&1=...

  • C++ 按位与、或、异或等运算方法

    按位与运算符(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则:0&0=0; 0&1=0; ...

  • php 与、或、异或运算

    1.与运算(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则: 即:两位同时为“1”,结果才为“1”...

  • Java 基础

    nancymiduo 2014 / 05 / 24 数学运算符 运算的封闭性 补码运算的封闭性Java 运算的规则...

  • 按位运算

    菜鸟一枚,请大家不要见怪。 (1)按位与(&)运算: 参与运算的两个数据按二进制位进行与运算。 运算规则:0...

网友评论

    本文标题:Java,二进制运算规则

    本文链接:https://www.haomeiwen.com/subject/twkrdctx.html