位运算

位运算

位运算是指对数据二进制位进行运算
  • 按位与&
  • 按位或|
  • 按位异或^
  • 非~
  • 原码、反码、补码
按位与&

都为1则结果为1否则为0

1&1=1
1&0=0
0&0=0
按位或|

有一个为1则结果为1否则为0

1|1=1
1|0=1
0|0=0
按位异或^

相同为0 相异为1

1^1=0
1^0=1
0^0=0
非~

1变0,0变1

~1=0
~0=1
原码、反码、补码

原码:除符号位以外的其他二进制位

//1的原码,32位中去除左侧最高位剩下的31位就是原码
0000 0000 0000 0000 0000 0000 0000 0001

反码:正数的反码就是本身,负数的反码是原码取反

//1的反码
0000 0000 0000 0000 0000 0000 0000 0001
//-1的反码
1111 1111 1111 1111 1111 1111 1111 1110

补码:正数的补码是本身,负数的补码是原码取反加1

//1的补码
0000 0000 0000 0000 0000 0000 0000 0001
//-1的补码
1111 1111 1111 1111 1111 1111 1111 1111
应用场景:

原码:正数的位运算使用的原码
反码:为了得到补码的一个中间值
补码:反码+1,负数位运算需用的是补码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 进制基本概念 什么是进制?进制是一种计数的方式,数值的表示形式 常见的进制十进制、二进制、八进制、十六进制 进制书...
    极客江南阅读 6,202评论 0 11
  • 计算机和真实生活中不同,一个数在计算机中只能以二进制(0或者1)的方式表示,现实生活中主要以十进制表示,在二进制的...
    彭阿三阅读 1,397评论 0 0
  • intmain(){ /* 按位与 & 只有对应的两个二进位均为1时,结果位才为1,否则为0。 1010101...
    一直很安静_25ae阅读 3,989评论 0 0
  • Chapter1: 位运算的奇技淫巧 1. 位运算基础 1. 基本概念与基本运算 1.1 原码、反码与补码 在计算...
    Aurochsy阅读 4,179评论 0 1
  • 嗯,昨天在复习java的时候遇到进制计算和反码补码原码的转换,脑子里没什么印象了,还是好记性不如烂笔头啊~ 写在最...
    一见你就笑嘻嘻阅读 4,442评论 2 4