在C语言中有整型实型和字符型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二节整型数据
知识点:进制的转换;整型的定义和使用;
重要程度:★★★★
在C语言中,有三种基本的数据类型,它们是整型、实型和字符型。
1、数制转换
二进制的数,基为二,某位出现的最大数字是2-1=1;
八进制的数,基为八,某位出现的最大数字是8-1=7;
十六进制的数,基为十六,某位出现的最大数字是f(相当与十进制的15)。在十六进制中,数字由十六个代码组成,分别是0~9和A~F(或者是a~f)这十六个代码。
表1列举出十进制数字从0~15时,相应的二进制、八进制和十六进制数字。(同列的为一组,表示相同的值)
表1 十进制、二进制、八进制和十六进制对照表
十进制0 1 2 3 4 5 6 7 二进制0 1 10 11 100 101 110 111 八进制0 1 2 3 4 5 6 7 十六进制0 1 2 3 4 5 6 7 十进制8 9 10 11 12 13 14 15 二进制1000 1001 1010 1011 1100 1101 1110 1111 八进制10 11 12 13 14 15 16 17 十六进制8 9 A B C D E F 十进制的数字在我们日常生活中普遍使用,然而在计算机内部,数字均以二进制形式表示和存放。引例:
(1)将任意进制的数转换为十进制数:
将这个数按照引例中的方法展开。注意底数使用的是该进制的基。
使用以上的方法,我们再来看两个例子:
(23E)16 = 2×162 + 3×161 + 14×160 =(574)10
(111)2 = 1×22+1×21+1×20 = 23-1 = (7)10
(2)将十进制数转换成任意进制数
十进制数转换成二进制数的规则为:将十进制的数字除以2,得到的商数继续除以2,直到商为0,然后将各次相除所得的余数从后往前排列,就得到该十进制数转换成的
对应的二进制数。例如,将十进制数13转换成二进制数的过程如下:
2 | 1 3
2 | 6 (1)
2 | 3 0
2 | 1 (1)
0 (1)
所得的余数从后往前排列,得到二进制数1101,与表1中的一致。
同理,可以得出将十进制数转换为任意进制数的规则。例如,将十进制数13转换成八进制数的过程如下:
8 | 1 3
8 | 1 (5)
0 (1)
所得的余数从后往前排列,得到二进制数15,与表1中的一致。
(3)二进制与八进制、十六进制之间的转换
从表1中可以看出,每个八进制数的单个数字都可以用三位二进制数来表示,最大的八进制单个数字7等于最大的三位二进制111,最小的八进制单个数字0等于最小的三位二进制000。因此,每个八进制数的单个数字都可以用三位二进制数字来表示,即23=8。同样,每个十六进制数的单个数字都可以用四位二进制数来表示,即24=16。
例如,将八进制数13转换成二进制数的过程如下:
(1 3)8 = (001 011)2
从以上的转换过程看出,将每个八进制数字转换成了三位二进制数字,1转换成001,3转换成011,因此八进制13对应的二进制数字为1011。
现举例说明将十六进制数数E3转换成二进制数的过程:
(E 3)16 = (1110 0011)2
从表1可以看出,十六进制数字E等于二进制的1110,3等于二进制的0011,于是十六进制数字E3等于二进制数字11100011。
反过来,将二进制转换成八进制、十六进制,只需将从右边起的每三位或者每四位二进制数转换成对应的八进制数或十六进制数。
进制的常见错误:
1. 八进制数据中出现8,甚至是9.
2. 十六进制中,把15当成一个字符(实际上应该是f)。