C语言-实现各进制间的相互转换-创新互联
c语言规定,在八进制数字前要加0(注意这里是数字0不是大写字母O),在十六进制数字前面要加0、X或0x(注意这里0依旧是数字0),而在十进制数字前面不需要加任何东西。
创新互联从2013年成立,先为晋江等服务建站,晋江等地企业,进行企业商务咨询服务。为晋江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。- 汇编中的进制
汇编语言中,在数字后面加字母B表示二进制数字,在数字后加字母O表示八进制数字,在数字后加字母D表示十进制数字,在数字后加字母H表示十六进制数字。
例如:
1101B表示二进制数字1101
1247O表示八进制数字1247
2367D表示十进制数字2367
7FA5H表示十六进制数字7FA5
- 常见的进制基数
十进制:0 1 2 3 4 5 6 7 8 9
二进制:0 1
八进制:0 1 2 3 4 5 6 7
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f (或0 1 2 3 4 5 6 7 8 9 A B C D E F)
- 不同进制输出方式
#includeint main()
{
int i = 31;
printf("i = %d\n", i); // %d表示以十进制输出整型数据
printf("i = %o\n", i); // %o表示以八进制输出整型数据,注意这里是小写字母o
printf("i = %x\n", i); // %x表示以十六进制输出整型数据,如果数字中包含字母时,字母为小写
printf("i = %X\n", i); // %X表示以十六进制输出整型数据,如果数字中包含字母时,字母为大写
printf("i = %#x\n", i); // %o表示以十六进制输出整型数据,输出结果中带有0x
printf("i = %#X\n", i); // %o表示以十六进制输出整型数据,输出结果中带有0X
return 0;
}
注:数制只是人用来计数的不同方法但他们所表示的量不会改变。
下面让我们一起看看各进制之间的相互转换。
一、由十进制转换为其他进制(短除法)
所以我们在转换过程中需要注意的是
1、记录余数
2、反向输出
3、当商比除数(基)小时商不变记录成为余数
二、由其他进制转换为十进制(位权乘和法)
1、例如、将八进制数字 35421 转换为十进制:
35421 = 3*8^4 + 5*8^3 + 4*8^2 + 2*8^1 + 1*8^0 = 15121(十进制) |
2、再如、将十六进制数字7FA5C转换为十进制
7FA5C = 7*16^4 + 15*16^3 + 10*16^2 + 5*16^1 + 12 *16^0 = 522844(十进制) |
3、将二进制数字转换为十进制数字也是类似的道理
11010 = 1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 26(十进制) |
4、三个二进制表示一个八进制,四个二进制表示一个十六进制
例如,给出一个二进制数010101令你将其分别转化为八进制、十六进制、十进制、
如下:
二进制数:010101
转为八进制:010 101 25
(0*2^2+1*2^1+0*2^0=2 1*2^2+0*2^1+1*2^0=5)所以结果为25
转为十六进制:(道理类似,因为四个二进制表示一个十六进制所以位数不够前面补0):
0010 0101 15或F
转为十进制:010101=0*2^5+1*2^4+0*2^3+1*2^2+0*2^1+1*2^0 =1+4+16=21
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:C语言-实现各进制间的相互转换-创新互联
网页链接:http://ybzwz.com/article/cdgces.html