内容正文:
C语言的基本数据类型和整型常量
学习目标
1、 C语言的基本数据类型
2、 常量和变量
3、整型常量及常量间的转换
知识精讲
1、常用标准数据类型
说明:
在Dev-C++或visual c中,int 同long,在winTC中,int 等同short。
2、无符号类型
如果在short或char类型标识符前面加上关键字unsigned,则表示无符号类型,其值为非负整数
3、常量和变量
常量和符号常量
在程序的运行过程中,其值保持不变的量称为常量。
#define PI 3.1415926
此后,凡在文件中出现的PI均可用3.1415926来代替。
4、整型常量
除了我们比较熟悉的整型常量如: 100、0、-256之外, C语言中还有其他形式的整型常量。
5、各种进制转换成十进制(举例说明)
例如:
· 0235等于十进制数157,即
2×82 +3×81 +5×80 =157。
· -0X23a等于十进制数 -570,因为0X23a=2×162+3×161+10×160=570
6、各种进制转换成二进制
· 任何类型的数据在计算机中都是以二进制补码形式存储的。
· 正数的补码等于其原码,而负数的补码等于其原码的反码+1。
7、数制转换
· 不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。
共有四进制
十进制:有10个基数:0 ~~ 9 ,逢十进一
二进制:有2 个基数:0 ~~ 1 ,逢二进一
八进制:有8个基数:0 ~~ 7 ,逢八进一
十六进制:有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一
· 典型例题
1、 十进制转换成二进制:
十进制整数转换成二进制整数通常采用除2取余法,小数部分乘2取整法。例如,将(30)10转换成二进制数。
将(30)10转换成二进制数
2| 30 ….0 ----最右位
2|15 ….1
2|7 ….1
2|3 ….1
1 ….1 ----最左位
∴ (30)10=(11110)2
将(30)10转换成八、十六进制数
8|30 ……6 ------最右位
3 ------最左位
∴ (30)10 =(36)8
16|30 …14(E)----最右位
1 ----最左位
∴ (30)10 =(1E)16
2、 把二进制转换成十进制采用方法:
把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。
如把二进制11110转换为十进制
(11110)2=1*24+1*23+1*22+1*21+0*20=
=16+8+4+2+0
=(30)10
3、 把八进制转换成十进制采用方法:
把这个八进制的最后一位乘上80,倒数第二位乘上81,……,一直到最高位乘上8n,然后将各项乘积相加的结果就它的十进制表达式。
把八进制36转换为十进制
(36)8=3*81+6*80=24+6=(30)10
把一个十六进制转换成十进制采用方法:把这个十六进制的最后一位乘上160,倒数第二位乘上161,……,一直到最高位乘上16n,然后将各项乘积相加的结果就它的十进制表达式。
把十六制1E转换为十进制
(1E)16=1*161+14*160=16+14=(30)10
测试题:
一、选择题
1.C语言中最简单的数据类型包括 ( )
A.整型、实型、逻辑型 B.整型、实型、字符型
C.整型、字符型、逻辑型 C.整型、实型、逻辑型、字符型
2.在C语言中,char型数据在内存中的存储形式是 ( )
A.补码 B.反码 C.原码 D.ASCII码
答案:1 B 2A
二、进制转换
1、 十进制转换成二进制:
十进制整数转换成二进制整数通常采用除2取余法,小数部分乘2取整法。例如,将(30)10转换成二进制数。
将(30)10转换成二进制数
2| 30 ….0 ----最右位
2|15 ….1
2|7 ….1
2|3 ….1
1 ….1 ----最左位
∴ (30)10=(11110)2
将(30)10转换成八、十六进制数
8|30 ……6 ------最右位
3 ------最左位
∴ (30)10 =(36)8
16|30 …14(E)----最右位
1 ----最左位
∴ (30)10 =(1E)16
2、 把二进制转换成十进制采用方法:
把这个二进制的最后一位乘上20,倒数第二位乘上21,……,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。
如把二进制11110转换为十进制
(11110)2=1*24+1*23+1*22+1*21+0*20= =16+8+4+2+0
=(30)10
3、 把八进制转换成十进制采用方法:
把这个八进制的最后一位乘上80,倒数第二位乘上81,……,一直到最高位乘上8n,然后将各项乘积相加的结果就它的十进制表达式。
把八进制36转换为十进制
(36)8=3*81+6*80=24+6=(30)10
把一个十六进制转换成十进制采用方法:把这个十六进制的最后一位乘上160,倒数第二位乘上161,……,一直到最高位乘上16n,然后将各项乘积相加的结果就它的十进制表达式。
把十六制1E转换为十进制
(1E)16=1*161+14*160=16+14=(30)10
学科网(北京)股份有限公司
$$