偶数二进制位反转(JAVA)

本文介绍了如何在Java中实现二进制位反转。通过一个8位的十进制数6 (0000 0110) 为例,展示了反转其二进制位的过程,最终得到3 (0000 0011)。通过位操作,将原数每次右移一位,最低位与结果数进行位或,并将结果左移一位,直到原数为0,得到反转后的二进制位。并给出了具体的Java实现代码和实例。
摘要由CSDN通过智能技术生成

java中相关的位操作

运算 功能 说明
& 按位与 a&b a b对应位与
按位或
位非 ~a a按位取反
>
位右移 a>>b a的二进制位向右移动b位,高位补零
<< 位左移 a<

二进制位反转思路

以下二进制位用8位做演示

a = 0000 0110 ; 十进制: 6

反转二进制位后

a = 0000 0011 ; 十进制: 3

只保留一个数的最低位,其余位变为0:
n = 0000 1101;
n & 1 = 0000 0001;

假设a = 0000 0110,b=0(用来保存结果)
a每次右移一位,然后最低位与b的最低位 进行位或,然后b左移一位, 直到a == 0为止,这样 b中则是a的反转二进制位的。

过程演示
  1. a = 0000 011*0*
    b = 0000 000*0*
  2. a = 0000 001*1*
    b = 0000 000*
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值