二进制与十进制互相转换的计算方法(个人向)

先理解什么是二进制

二进制(binary)是在数学和数字电路中指以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 [1] 。数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(Bit,Binary digit的缩写)

以上来源于百度百科

做个例子
1 ,7,26,89,131,231

先将上面的数字计算出二进制

1-> 00000001
7-> 00000111
26-> 00011010
89-> 01011001
131->10000011
231->11100111

个人理解

十进制转二进制:


拿到十进制的数之后 先考虑这个数是否大于某个2^n的数 若是 那么这个n就是后面跟的0的个数 比如26 
26大于2^4(记住考虑至多的那个次方数) 那么可以先写出对应的2^4的二进制数:10000 
之后拿26-16=10 这时候再算出10对应的次方数 也就是2^3的二进制数:1000
现在还剩下2 我自己的理解得出了以下结论
1.若十进制数大于等于2小于4 那么就在倒数第二位补1
2.若十进制小于2那么 就在末尾补 1 可理解为20次方 最大为1 不补就是0

所有得2^1的二进制数:10
综上所有的二进制数:11010也就是对应的十进制数26

二进制转十进制

二进制转十进制实际就是逆向工程
比如1011001 它后面跟着6位数 说明它大于2^6那么先得出二进制数1000000=64
然后计算 11001 它后面跟着4位数 说明它大于2^4那么得出二进制数10000=16
再计算1001 它后面跟着3位数 说明它大于2^3那么得出二进制数1000=8
最后只剩下1 同上面得出的结论 1就是2^0也就是1=1
将上面数字相加就是64+16+8+1=89也就是我们开头第四个计算的十进制数字

不用思考为什么最前面0 只是为了转换方便 也可以省略不写
例如:
00001011001和 1011001 没`在这里插入代码片有任何的区别只是写法不同

后续有机会 会更新JAVA位运算的计算方式和优化模运算的文章

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掂掂三生有幸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值