二、C语言的数据类型
2、整型数据
在C语言里,整数有三种表示形式:十进制,八进制,十六进制。
整型数据如下:
(1)十进制数:123、-456、0
十进制数4553.87可以表示为:
逢十进一
(2)八进制数:以0开头的数字是八进制数 ,八进制数并不常用,对其粗略掌握即可
以0开头,由0~7组成的数,如 0126, 050000
逢八进一
(3)十六进制数:以0x开头的数是十六进制数,如Ox123,十六进制数比较常用,需要对其进行一定的掌握
以0X或0x开头,由09,AF或a~f 组成的数,如 0x12A, 0x5a000
用A来表示10,B表示11,C表示12,D表示13,E表示14,F表示15
逢十六进一
八进制、 十六进制数转换为十进制数方法:
只需要乘以 2,再相加、取整数是对应的十进制数。
八进制数 转十进制
得出的结果是十进制数10
十六进制数转十进制
得出的结果是十进制数18
十进制数转换为八进制、 十六进制数方法:
只需要用十进制数除以8或16,取每一步的余数,余数倒序排列
例:100转八进制和十六进制
扩展:
二进制数
逢二进一
例:十进制20 转二进制
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法
用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
例:十进制0.625转二进制
例:十进制13.25转二进制
练习:
八进制0247 转十进制
十六进制0xf7 转十进制
十进制167转八进制
十进制246转十六进制
十进制100.75转八进制
十进制100.75转十六进制
十进制100.75转二进制
八进制0144.6转十进制
十六进制0x64.C转十进制
二进制11011.101转十进制
整型变量的分类
基本型 int
短整型 short int(简写为 short)
长整型 long int(简写为 long)
无符号型 unsigned int、unsigned short、unsigned long,只能存放不带符号的数字(正数和零),不能存放负数 ,所以 ,一个无符号整型变量存放的数字范围比带符号整型变量存放的数字范围大一倍
如果无法确定某个变量或者某种数据类型所占用的内存大小(单位字节) ,可以使用 sizeof 运算符获得, 但得要特别注意的是,用 sizeof 运算符获得某个变量所占用的内存大小时,和该变量中保存的数值内容没有任何关系。
整型变量的定义
常量的类型
常景是分类型的,也可以认为不分类型
比如 210 是什么类型的常量? 取决于这个值赋给什么类型的变量:
int abc=210; //这不是赋值语句,这是定义abc变量,初始化值为210;
short bcd=210; //这也不是赋值语句,也是定义 bcd变量,初始化值为210;
bcd= 300; //这才是赋值语句,带=的语句,开头没有类型名int、short等,因此是赋值语句
注意:赋值语句后面讲,这里只要知道是把新的300赋给了bcd变量,把210的初始值取代了。
有一些特殊写法需要注意:
(1)在一个常量后面加 一个字母 U 或u,表示这个常量用无符号整型方式存储,相当于unsigned int
(2)在一个常数后面加一个字母 L 或l,表示这个常量用长整型方式存储,相当于 long
(3)在一个常数后而加一个字母 F或 f,表示这个常量用浮点方式存储,相当于f1oat
这种写法没有多意义,因为这些常量一般都会赋值给一些变量,实际的类型取决于这些变量的类型。之所以提,是因为别人的代码里可能会这么写,所以要了解。