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://scyanting.com/article/cdgces.html