![C++新经典](https://wfqqreader-1252317822.image.myqcloud.com/cover/184/44510184/b_44510184.jpg)
2.1.4 整型数据
整型数据如下:
(1)十进制数:如123、-456、0。
(2)八进制数:以0开头的数字是八进制数,如果对八进制数不熟悉,可以利用搜索引擎来简单了解,八进制数并不常用,对其粗略掌握即可。演示范例如下:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p43_85186.jpg?sign=1738880899-VYbkA5txK5r4I2ON9iGVxtWa6L3IG88H-0-7dcfc61b0ce67d782c191088668c27bb)
输出的结果信息是:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p43_851861.jpg?sign=1738880899-bdO3r5kCTJvC0cbF3lvgywNNKLFd6jud-0-2fba62732d06f641aa24c86474f2df0b)
(3)十六进制数:以0x开头的数是十六进制数,如0x123。十六进制数比较常用,需要对其进行一定的掌握,如果对十六进制数不熟悉,请利用搜索引擎进行了解。下面的范例演示0x12的十进制数。
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p44_85189.jpg?sign=1738880899-6ZP8ISsbI6SuoVZVsi6dQ9HNLsHifP6M-0-3e0829f3989be7ae02ea1575a53a0004)
输出的结果信息为:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p44_851891.jpg?sign=1738880899-6bfdKOTFJsVfF6EgMFq9xXBjWP1VUhQi-0-2f2ceaf61e1ea72d34fb5ec1c8f3acae)
那么,八进制、十六进制数如何转换为十进制数:只需要乘以2,再相加、取整就是对应的十进制数。简单看一下范例:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-P44_85192.jpg?sign=1738880899-KbVvy14cqQkAHaI1UdHV4LX60NT5HKt0-0-7389217bd8a7be7eac3a4f57e95ea7dd)
1.整型变量的分类
基本型:int。
短整型:short int(简写为short)。
长整型:longint(简写为long)。
无符号型:unsigned int、unsigned short、unsigned long,只能存放不带符号的数字(正数和零),不能存放负数,所以,一个无符号整型变量存放的数字范围比带符号整型变量存放的数字范围大一倍,这一点从表2.2中也可看到。
如果无法确定某个变量或者某种数据类型所占用的内存大小(单位:字节),可以使用sizeof运算符获得。但需要特别注意的是,用sizeof运算符获得某个变量所占用的内存大小时,和该变量中保存的数值内容没有任何关系。演示范例如下:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p44_85296.jpg?sign=1738880899-cpbsFytuI5SEsP6IsXo4NpPVQqkUx08Z-0-477c28aa7710dc462c011c65d01f1f14)
输出的结果信息是:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p44_43921.jpg?sign=1738880899-rOrX19JXlVtaCqaHFjv4RnXtKhkpe9qP-0-23ce0ae0bb56740ca1602d53cd20cf44)
该结果和表2.1所示的int型变量所占用的内存字节数一致。
2.整型变量的定义
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p44_85297.jpg?sign=1738880899-KResaE2xkBbyoHKldkqFPf7Pb0iQknCI-0-cfd085971a5b42cfc055be5dbc43953d)
3.
常量的类型
前面提到过,常量是分类型的,不过换个角度来看,常量也可以认为不分类型,如189是什么类型的常量呢?取决于该值赋给什么类型的变量。演示范例如下:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p44_85196.jpg?sign=1738880899-j9uvAQMIHs5vE1V5EHu4kmqehBOHpqsP-0-281d0808d7b624aaa795b3618121c0bd)
有一些特殊写法需要额外介绍:
(1)在一个常数后面加一个字母U或u,表示该常数用无符号整型方式存储,相当于unsignedint。
(2)在一个常数后面加一个字母L或l,表示该常数用长整型方式存储,相当于long。
(3)在一个常数后面加一个字母F或f,表示该常数用浮点方式存储,相当于float。
整体感觉,这种写法的意义不大,因为这些常量一般都会赋值给一些变量,实际的类型取决于这些变量的类型。之所以介绍这种写法,是因为在阅读他人代码时,可能会遇到。演示范例如下:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p45_85199.jpg?sign=1738880899-qpIqGjiTtNqi5w6AxvZlyqMxtV6dSS8M-0-70042c292ba96f517701ebe96a1e5f58)