二进制与十进制转换

二进制转十进制

(1)整数

从右到左,乘以2的递增次方。

(2)小数

从左到右,乘以2的递减负次方。

1101.01(2)=1*20+0*21+1*22+1*23 +0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)

十进制转二进制

(1)整数

除2取余,从右到左,排列

789=1100010101(B)

789/2=394 余1 第10位
394/2=197 余0 第9位
197/2=98 余1 第8位
98/2=49 余0 第7位
49/2=24 余1 第6位
24/2=12 余0 第5位
12/2=6 余0 第4位
6/2=3 余0 第3位
3/2=1 余1 第2位
1/2=0 余1 第1位

(2)小数

乘2取整,从左到右,排列

0.7=(0.1 0110 0110…)B

0.7*2=1.4========取出整数部分1
0.4*2=0.8========取出整数部分0
0.8*2=1.6========取出整数部分1
0.6*2=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0
0.4*2=0.8========取出整数部分0
0.8*2=1.6========取出整数部分1
0.6*2=1.2========取出整数部分1
0.2*2=0.4========取出整数部分0

注意:

将一个数左移N位相当于将一个数乘以2的N次方。

将一个数右移N位相当于将这个数除以2的N次方。

如:

12二进制1100,右移两位是二进制11,等于3

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

@Slf4j
public class test {
    @Test
    public void count() {
        int a = 12;
        log.info("值:"+String.valueOf(a >> 2));
        log.info("值:"+String.valueOf(a << 2));
    }
}
14:09:30.763 [main] INFO test - 值:3
14:09:30.769 [main] INFO test - 值:48
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值