意思是把一个
带符号的
二进制 转化为对应的
十进制,比如这个
二进制首位是1,那么
转化过来的10进制是个负
数,这个
二进制数是用一个10进制来表示的。应该自己不会看晕了吧。代码是复制别人的,谢谢那位同学,
转载了一下。 http://bbs.csdn.net/topics/390051765#new_post //把
带符号的
二进制数直接
转换成
十进制,这个
二进制是10进制
数表示的
关于二、十、十六进制互相转换的方法
1.二进制转十进制。
**方法一:**二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方(次方从0开始),再将其每个数进行相加。
例如:1101转十进制:(1乘2的0次方)+(0乘2的1次方)+(1乘2的2次方)+(1乘2的3次方)=1+4+8=13。
**方法二:**采用二进制相位从右往左排列相加,1则加,0则不加,具体如图:
即1+4+8=13。
2.十进制转二进制。
方法一:采用除二取余,倒序排列组合为二进制。
方法二:十转二则与二转十相反,十转二采用与相
转载自:https://jingyan.baidu.com/article/8ebacdf0133c2f49f65cd5d0.html
https://jingyan.baidu.com/article/a501d80c6b3057ec630f5e21.html
正
数情况下
十进制转二进制
此处以18为例讲解下如何求解它的
二进制,及由
二进制转换回
十进制。
将18进行除2取余,将余
数写在后面
将取得的余
数排成一行。
将余
数从前往后排徐,写的
数字列即是
二进制。
二进制转十进制
在计算机编程过程中,各种进制的转换很多,二进制转为十进制在C语言中有强制转换的方式。在CAN报文解析的时候,从数据中取出的二进制端,长度可能不是正好一个字节,这个时候如果要求数据是有符号的,需要单独写程序。
首先我们需要理解有符号和无符号变量的区别,以1个字节十进制为例,有符号的取值范围为-127~+127,无符号取值范围为0-255;那么同一组二进制数据在转成有符号和无符号变量时有什么关联呢?
通常我们将二进制数据进行反码、补码计算,再进行转换,计算比较复杂。
假设一个二进制数据为1000..
012A=0 X
163 + 1 X
162+ 2 X
161 + 10 X
160 = 298
说明:当中的
十六进制:a=10 b=11 c=12 d=13 e=14 f=15
第二种:迂回法
将
十六进制转换为
二进制在
转换为
十进制(第一种小伙伴们或许不好理解,第二种容易理解)
1A首先
转为
二进制:0001 1010
lenth = len(str1) #求字符串长度
for i in range(1,lenth):
if str1[i] == '1': #判断该
二进制数各位值为1或0,为1则进行后续计算
save = 2**(lenth-i-1)