数码进制及其转换

最近在课内学习单片机技术,涉及到二进制,十进制,十六进制的互相转换,需要熟练掌握,在以后的单片机学习中会经常使用到。
十进制:逢十进一,每一位可以表示的范围是0~9

二进制转换成十进制
二进制:
逢二进一
每一位可以表示的范围是0~1,以8位为例:00000000-11111111表示十进制的0-255,4位二进制数0000-1111表示十进制的0-15
二进制数以B结尾,或者括号小角标2
1.按权展开相加
根据公式∑Kn*2^(n-1),n是二进制数从右往左数的位数,例如:1011B转换成十进制数为1*2^3+0*2^2+1*2^1+1*2^0=13D,D代表十进制
2.熟记二进制每一位的权
1 1 1 1 1 1 1 1 . 1 1 1 1
128 64 32 16 8 4 2 1 0.5 0.25 0.125 0.0625
转换的时候看哪一位上有1就把对应位上的书加起来就可以了
十进制转化成二进制
分整数部分和小数部分
整数部分:除二取余,余数倒取
例如:13D:13/2=6…1
6/2=3…0
3/2=1…1
1/2=0…1
作除直到商为0截止,余数倒着取1101为二进制
十进制转化为其他进制类同,除进制数就可以
小数部分:乘二取整,整数正取
0.125D:0.125*2=0.25整数:0
0.25*2=0.5整数:0
0.25*2=1.0整数:1
作乘到小数部分为0截止,整数正取0.001B位二进制

以下是引用了一位为博主的经验

文章http://blog.163.com/kongdelu2009@yeah/blog/static/111995207201037105051259/

十六进制转换成十进制
十六进制:
逢十六进一
以H结尾表示十六进制或括号下表16,例如23H或(23)16小写
每一位可以表示的范围是0~15,由0~9,A~F(10~15)表示,所以十六进制的一位表示的最大值等于二进制的四位表示最大值。
十六进制每一位的权是16^(n-1),n是从右向左数的位数,所以转换成十进制可以按照公式:∑Kn*16^(n-1),K是十六进制每一位上具体的数,例如:75BCH=7*16^3+5*16^2+11*16^1+12*16^0=30140D

在java环境中可以通过函数工具进行转换
1.十进制转成二进制
String s = Integer.toBinaryString(n) //将十进制数转成字符串,例如n=5 ,s = “101”

猜你喜欢

转载自blog.csdn.net/weixin_42428357/article/details/82378205