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

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

正文


先理解什么是二进制


二进制(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 可理解为2的0次方 最大为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位运算的计算方式和优化模运算的文章

相关文章
|
8月前
|
存储
【BigDecima】不可变的,任意精度的有符号十进制数。
【BigDecima】不可变的,任意精度的有符号十进制数。
69 0
|
8月前
二进制与十六进制,二进制与八进制之间的相互转换技巧
二进制与十六进制,二进制与八进制之间的相互转换技巧
640 0
创建定长的数字,进制之间转化,二进制,十进制 字符串
创建定长的数字,进制之间转化,二进制,十进制 字符串
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细
|
算法 C语言
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
|
开发者 Python
十进制转换成二进制 | 学习笔记
快速学习 十进制转换成二进制
294 0
十进制转换成二进制 | 学习笔记
【c++】关于数值进制以及进制之间转化
【c++】关于数值进制以及进制之间转化
207 0
【c++】关于数值进制以及进制之间转化
|
Python
Python编程:二进制,八进制,十六进制与十进制之间的转换
Python编程:二进制,八进制,十六进制与十进制之间的转换
132 0
Python编程:二进制,八进制,十六进制与十进制之间的转换