C Primer Plus-C数据类型
2015-01-25 17:03
309 查看
int类型是有符号整数,即int类型的值必须是整数,可以是正的,负的或者是0,取值范围依赖于计算机系统。
旧的IBM PC兼容机有16位的字,因而使用16位来存储一个int值,取值范围为-32768到32767。
目前个人计算机的整数一般为32位,使用32位的int值。
正确的声明:
都将为4个int大小的变量赋予名称并安排存储空间。
但变量并未初始化。
![](http://img.blog.csdn.net/20150125160507484?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnlob29r/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
C把不含小数点和指数的数当作整数。比如22和-44都是整数,而22.0和2.2E1则不是。
八进制和十六进制
一般的,C假设整数常量为十进制数。而8进制和16进制是2的幂,所以这些数可以更加方便的表示与计算机相关的值。用十六进制表示它正好是10000。
十六进制数(2^4)每位恰好可由4位二进制数表示。例如,十六进制的数字3是0011,十六进制的数字5是0101,十六进制值53按位表示形式就是0101 0011。
前缀0x或0X表示十六进制,前缀0表示使用八进制。例如十进制数16用八进制表示为020。
使用不同数制系统的选择是为了方便而提供,并不影响数字的存储,数字都按同样的方式,即计算机内部使用 二进制编码进行存储。
C既允许使用3种数制书写数字,也可以以这3中数制显示数字。
八进制%0,十进制%d,十六进制%x或%X
想显示C语言前缀,可以使用说明符%#o%#x和%#X分别生成0,0x和0X前缀。
C提供3个附属关键字修饰基本的整数类型:short,long,unsigned
A.short int类型(或简写short类型),可能占用比int类型更少的存储空间,用于仅需要小数值的场合以节省空间,同int类型一样short类型也是有符合类型。
B.long int类型(或简写long类型),可能占用比int类型更多的存储空间,用于使用大数值的场合。同int类型一样,long类型是一种有符合类型。
C.long long int类型(或简写long long类型 C99标准),可能占用比long类型更多的存储空间,用于使用更大数值的场合。同int类型一样long long类型是一种有符号类型。
D.unsigned int类型(或简写为unsigned类型),用于只使用非负值的场合,这种类型同有符号类型的 表示范围不同,例如,16位的unsigned int取值范围为0到65535,而带符号int的取值范围为-32768到32767。由于指示数值正负的位也被用于二进制位,所以无符号数可以表示更大的数值。
E.在C90标准中,还允许unsigned long int(简写unsigned long)和unsigned short int(简写unsigned short)类型。C99又增加了unsigned long long int(简写为unsigned long long)类型。
关键字signed可以和任何有符号类型一起使用,它使数据的类型更加明确。例如:short,short int,signed short,以及signed short int代表了同一种类型。
其它类型的声明方式同int类型相同,最后一条语句由C99标准引入
![](http://img.blog.csdn.net/20150125163654343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnlob29r/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
C仅能保证short类型不会比int类型长,并且long类型不会比int类型短。
目前一般的情况是,long long类型为64位,long类型为32位,short类型为16位,int类型为16位或32位。
在诸多整数类型中,请首先考虑unsigned类型。这种类型用于计数是十分自然的事,因为你不需要负数,而且无符号能取到比有符号类型更大的正数。
%u说明符显示unsigned int类型的值。
整数达到最大是,它将溢出到起始点。unsigned int起始点是0,而int变量的起始点则是-2147483648。
在支持long long类型的系统中,可以使用ll或LL后缀标识long long类型值,比如3LL。u或U后缀标识unsigned long long类型值,比如5ull,10LLU,9Ull。
打印unsigned int数字可以使用%u符号。打印打印long数值,可以使用%ld格式说明符。在x和o符号钱也可以使用l前缀
因此%lx表示以十六进制打印长整数,%lo表示以八进制格式打印长整数
其他格式
可以对short类型使用h前缀,因此%hd表示以十进制显示short整数,%ho表示以八进制显示short整数。h和l前缀都可以同u结合使用以表示无符号类型,比如%lu表示打印unsigned long类型。long long类型,系统使用了%lld和%llu来表示有符号和无符号类型。
无论使用%hd还是%d,short类型变量end的显示结果相同。因为传递函数参数时C自动将short类型的值转换为int类型。
因为int类型被认为是计算机处理起来最方便有效的整数类型,可以使用h修饰符显示一个较长的证书被截为short类型的样子。
把值65537按照二进制格式写为一个32位的数字时,它应该是00000000000000010000000000000001。使用%hd之后显示后16位,即显示1。
旧的IBM PC兼容机有16位的字,因而使用16位来存储一个int值,取值范围为-32768到32767。
目前个人计算机的整数一般为32位,使用32位的int值。
正确的声明:
int a; int b,c,d;
都将为4个int大小的变量赋予名称并安排存储空间。
但变量并未初始化。
C把不含小数点和指数的数当作整数。比如22和-44都是整数,而22.0和2.2E1则不是。
八进制和十六进制
一般的,C假设整数常量为十进制数。而8进制和16进制是2的幂,所以这些数可以更加方便的表示与计算机相关的值。用十六进制表示它正好是10000。
十六进制数(2^4)每位恰好可由4位二进制数表示。例如,十六进制的数字3是0011,十六进制的数字5是0101,十六进制值53按位表示形式就是0101 0011。
前缀0x或0X表示十六进制,前缀0表示使用八进制。例如十进制数16用八进制表示为020。
使用不同数制系统的选择是为了方便而提供,并不影响数字的存储,数字都按同样的方式,即计算机内部使用 二进制编码进行存储。
C既允许使用3种数制书写数字,也可以以这3中数制显示数字。
八进制%0,十进制%d,十六进制%x或%X
想显示C语言前缀,可以使用说明符%#o%#x和%#X分别生成0,0x和0X前缀。
C提供3个附属关键字修饰基本的整数类型:short,long,unsigned
A.short int类型(或简写short类型),可能占用比int类型更少的存储空间,用于仅需要小数值的场合以节省空间,同int类型一样short类型也是有符合类型。
B.long int类型(或简写long类型),可能占用比int类型更多的存储空间,用于使用大数值的场合。同int类型一样,long类型是一种有符合类型。
C.long long int类型(或简写long long类型 C99标准),可能占用比long类型更多的存储空间,用于使用更大数值的场合。同int类型一样long long类型是一种有符号类型。
D.unsigned int类型(或简写为unsigned类型),用于只使用非负值的场合,这种类型同有符号类型的 表示范围不同,例如,16位的unsigned int取值范围为0到65535,而带符号int的取值范围为-32768到32767。由于指示数值正负的位也被用于二进制位,所以无符号数可以表示更大的数值。
E.在C90标准中,还允许unsigned long int(简写unsigned long)和unsigned short int(简写unsigned short)类型。C99又增加了unsigned long long int(简写为unsigned long long)类型。
关键字signed可以和任何有符号类型一起使用,它使数据的类型更加明确。例如:short,short int,signed short,以及signed short int代表了同一种类型。
其它类型的声明方式同int类型相同,最后一条语句由C99标准引入
C仅能保证short类型不会比int类型长,并且long类型不会比int类型短。
目前一般的情况是,long long类型为64位,long类型为32位,short类型为16位,int类型为16位或32位。
在诸多整数类型中,请首先考虑unsigned类型。这种类型用于计数是十分自然的事,因为你不需要负数,而且无符号能取到比有符号类型更大的正数。
%u说明符显示unsigned int类型的值。
整数达到最大是,它将溢出到起始点。unsigned int起始点是0,而int变量的起始点则是-2147483648。
在支持long long类型的系统中,可以使用ll或LL后缀标识long long类型值,比如3LL。u或U后缀标识unsigned long long类型值,比如5ull,10LLU,9Ull。
打印unsigned int数字可以使用%u符号。打印打印long数值,可以使用%ld格式说明符。在x和o符号钱也可以使用l前缀
因此%lx表示以十六进制打印长整数,%lo表示以八进制格式打印长整数
其他格式
可以对short类型使用h前缀,因此%hd表示以十进制显示short整数,%ho表示以八进制显示short整数。h和l前缀都可以同u结合使用以表示无符号类型,比如%lu表示打印unsigned long类型。long long类型,系统使用了%lld和%llu来表示有符号和无符号类型。
无论使用%hd还是%d,short类型变量end的显示结果相同。因为传递函数参数时C自动将short类型的值转换为int类型。
因为int类型被认为是计算机处理起来最方便有效的整数类型,可以使用h修饰符显示一个较长的证书被截为short类型的样子。
把值65537按照二进制格式写为一个32位的数字时,它应该是00000000000000010000000000000001。使用%hd之后显示后16位,即显示1。
相关文章推荐
- 《C Primer Plus》学习笔记之 C数据的属性(三)类型限定词
- c++primerplus(第六版)编程题——第3章(数据类型)
- c++ primer plus(一)数据类型
- c primer plus第3章总结:数据类型
- 《C Primer Plus》学习笔记之 C数据的属性(一)数据类型
- C Primer Plus 读书笔记02 数据类型
- C Primer+Plus(十四)结构和其他数据形式
- C++ Primer Plus学习:第三章 处理数据(2)
- C++ Primer Plus学习:第四章 复合类型(3)
- [c++ primer plus]RTTI运行阶段类型识别
- 学习C++.Primer.Plus 3 处理数据
- 2012/1/9 《C++ Primer Plus》第三章:处理数据 学习笔记
- 2012/1/9 《C++ Primer Plus》第三章:处理数据 学习笔记
- C primer plus第3章(数据和C)习题
- 《C Primer Plus 5th》读书笔记----存储类、链接、类型限定词
- C primer plus第14章(结构和其他数据形式)
- 2012/1/11 《C++ Primer Plus》第四章:复合类型 学习笔记
- 2012/1/11 《C++ Primer Plus》第四章:复合类型 学习笔记
- sqlplus copy(复制大批量数据(long类型))
- C++ Primer Plus学习:第四章 复合类型(1)