二进制位运算

一 引言

    最近在查看JDK1.8的源码,分析integer.java文件,发现用到一些位运算,遂网上了解一番。

二 正文

 下面的a和b都是整数类型,则:

含义Pascal语言C语言C#语言Java
按位与a and ba & ba & ba & b
按位或a or ba | ba | ba | b
按位异或a xor ba ^ ba ^ ba ^ b
按位取反not a~a~a~a
左移a shl ba << ba << ba << b
带符号右移a shr ba >> ba >> ba >> b
无符号右移   a>>> b

   例子

 按位与 同符号

0b00000000000000000000000000001011
0B01111111111111111111111111111111
0B00000000000000000000000000001011 OK


按位与 不同符号
0b00000000000000000000000000001011
0B10000000000000000000000000000001
0B00000000000000000000000000000001 OK 


按位异或 同符号
0b00000000000000000000000000001011
0B01111111111111111111111111111111
0B01111111111111111111111111110100 OK


按位异或 不同符号
0b00000000000000000000000000001011
0B10000000000000000000000000000001
0B10000000000000000000000000001010 OK


按位取反 正整数
0b00000000000000000000000000001011
0b11111111111111111111111111110100 OK


按位取反 负整数
0B10000000000000000000000000000001
0B01111111111111111111111111111110 OK


左移2位 正数
0b00000000000000000000000000001011
0b00000000000000000000000000101100 OK


左移2位 负整数
0B10000000000000000000000000000001
0B00000000000000000000000000000100 OK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值