Objective-C数量类型-Objective-C 限定词 long short 等
2011-08-26 11:28
357 查看
在Objective-C里有如下几个限定词需要了解:long,long long, short,unsigned,signed
long
如果直接把限定词long放在int声明之前,那么所声明的整型变量在某些计算机上具有扩展的值域。一个long int声明的例子为:
long int factorial;
这条语句将变量factorial声明为long的整型变量,也就是长整型。就象float和double变量一样,long变量的具体精度是由具体的计算机系统决定的。在许多系统上,int与long int具有相同的值域,而且任何一个都能存储4个字节(1个字节8位),32位宽(2,147,483,647)的整型值。long在限定整型的时候,实际相当于双精度的short,什么是short? Mike后面会谈。
long int类型的常量值可通过在整型常量末尾添加字母L(大小写均可)来形成。单数字和L之间不允许由空格。因为小写的L和数字1容易混淆,建议有用到这种情况,都用大写。下面是个简单的例子:
long int numberOfPoints = 131071100L;
将变量numberOfPoints声明为长整型,而且初值为131,071,100。
要用NSLog显示long int的值,使用字母l做为修饰符并放在整型格式符号i,o和x之前。例如“%lx”表示十六进制格式显示值。
当然,我们同样可以把 long 标识符放在double声明之前。范例如下:
long double US_deficit_2004;
long double常量可写成其尾部带有字母l或L的浮点常量,例如:1.234e+7L
要显示long double的值,需要使用修饰符L。因此,%Lf用浮点计数法显示long double的值,%Le用科学计数法显示同样的值,而%Lg将告诉NSLog在%Lf和%Le之间任选一个使用。
long long
双长整型相当于双精度long,可以用如下形式使用:
long long int maxAllowedStorage;
这条语句把指定的变量声明为具有特定扩展精度的双长整型变量,该扩展精度保证变量至少8个字节,具有64位的宽度。NSLog字符串不使用单个字母l,而使用两个l来显示long long的整数,例如“%lli”。
short
把限定词short放在int声明之前时,它告诉Objective-C编译器要声明的特定变量用来存储相当小的整数。之所以使用short变量,主要原因是对节约内存空间的考虑,当程序员需要大量内存而可用的内存量又十分有限时,比如iPhone开发的时候,就可用short变量来解决这个问题。
在某些计算机上,short int占用的内存空间是常规int变量所占空间的一半。在任何情况下,确保分配给short int的空间数量不少于2个字节,16位。
注意,在Objective-C中,没有其他方法可显式地编写short int型常量。要显示short int变量,可将字母h放在任何普通的整型转换符之前,如:%hi,%ho或%hx。换句话说,可用任何整型转换符号来显示short int,因为当它作为参数传递给NSLog例程时,可转换成整数。
unsigned
顾名思义,这个最终限定词就是无符号,可放在int变量之前,当整数变量只用来存储正数的情况下使用最终限定符。以下语句
unsigned int counter;
向编译器声明:变量counter只用来保存正值。通过限制整型变量的使用,使它专门存储正整数,可以扩展整型变量的精度。一般unsigned int可简写为uint。
通过将字母u(或U)放在常量之后,可产生unsigned int常量,例如:0x00ffu
编写整型常量时,可将字母u(或U)和l(或L)组合起来使用,例如30000UL,告诉编译器将常量20000看作unsigned long。
简写
将变量声明为long int,short int或unsigned int类型时,关键字int 可以省略。因此unsigned变量counter可等价地声明为以下形式:
unsigned counter;
同时可将char变量声明为unsigned。
signed
signed限定词可明确地告诉编译器特定变量是有符号的。它主要用在char声明前面,这个就比较复杂,此处按下不表。
long
如果直接把限定词long放在int声明之前,那么所声明的整型变量在某些计算机上具有扩展的值域。一个long int声明的例子为:
long int factorial;
这条语句将变量factorial声明为long的整型变量,也就是长整型。就象float和double变量一样,long变量的具体精度是由具体的计算机系统决定的。在许多系统上,int与long int具有相同的值域,而且任何一个都能存储4个字节(1个字节8位),32位宽(2,147,483,647)的整型值。long在限定整型的时候,实际相当于双精度的short,什么是short? Mike后面会谈。
long int类型的常量值可通过在整型常量末尾添加字母L(大小写均可)来形成。单数字和L之间不允许由空格。因为小写的L和数字1容易混淆,建议有用到这种情况,都用大写。下面是个简单的例子:
long int numberOfPoints = 131071100L;
将变量numberOfPoints声明为长整型,而且初值为131,071,100。
要用NSLog显示long int的值,使用字母l做为修饰符并放在整型格式符号i,o和x之前。例如“%lx”表示十六进制格式显示值。
当然,我们同样可以把 long 标识符放在double声明之前。范例如下:
long double US_deficit_2004;
long double常量可写成其尾部带有字母l或L的浮点常量,例如:1.234e+7L
要显示long double的值,需要使用修饰符L。因此,%Lf用浮点计数法显示long double的值,%Le用科学计数法显示同样的值,而%Lg将告诉NSLog在%Lf和%Le之间任选一个使用。
long long
双长整型相当于双精度long,可以用如下形式使用:
long long int maxAllowedStorage;
这条语句把指定的变量声明为具有特定扩展精度的双长整型变量,该扩展精度保证变量至少8个字节,具有64位的宽度。NSLog字符串不使用单个字母l,而使用两个l来显示long long的整数,例如“%lli”。
short
把限定词short放在int声明之前时,它告诉Objective-C编译器要声明的特定变量用来存储相当小的整数。之所以使用short变量,主要原因是对节约内存空间的考虑,当程序员需要大量内存而可用的内存量又十分有限时,比如iPhone开发的时候,就可用short变量来解决这个问题。
在某些计算机上,short int占用的内存空间是常规int变量所占空间的一半。在任何情况下,确保分配给short int的空间数量不少于2个字节,16位。
注意,在Objective-C中,没有其他方法可显式地编写short int型常量。要显示short int变量,可将字母h放在任何普通的整型转换符之前,如:%hi,%ho或%hx。换句话说,可用任何整型转换符号来显示short int,因为当它作为参数传递给NSLog例程时,可转换成整数。
unsigned
顾名思义,这个最终限定词就是无符号,可放在int变量之前,当整数变量只用来存储正数的情况下使用最终限定符。以下语句
unsigned int counter;
向编译器声明:变量counter只用来保存正值。通过限制整型变量的使用,使它专门存储正整数,可以扩展整型变量的精度。一般unsigned int可简写为uint。
通过将字母u(或U)放在常量之后,可产生unsigned int常量,例如:0x00ffu
编写整型常量时,可将字母u(或U)和l(或L)组合起来使用,例如30000UL,告诉编译器将常量20000看作unsigned long。
简写
将变量声明为long int,short int或unsigned int类型时,关键字int 可以省略。因此unsigned变量counter可等价地声明为以下形式:
unsigned counter;
同时可将char变量声明为unsigned。
signed
signed限定词可明确地告诉编译器特定变量是有符号的。它主要用在char声明前面,这个就比较复杂,此处按下不表。
相关文章推荐
- 编写一个程序,分别以signed和unsigned限定的char、short、int与long类型的变量取值范围
- 打印signed 及unsigned限定的char short int 及long类型变量的取值范围
- 编写一个程序以确定分别由signed及unsigned限定的char、short、int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现
- 打印分别由signed和unsigned限定的char , short, int ,与long类型变量的取值范围。
- 练习2-1 编写一个程序以确定分别由signed及unsigend限定的char short int 与long类型变量的取值范围
- 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。
- 练习 2-1 编写一个程序以确定分别由 signed 及 unsigned 限定的 char、short、 int 与 long 类型变量的取值范围。
- C++ bool,char,short,int,long,float,double数据类型大小以及数据溢出值求解
- 数据类型 -- char , unsigned char = BYTE, short, unsigned short = WORD, long, unsigned long = DWORD, int , unginged int = UINT
- C/C++: short , int , long , long long数据类型选用
- 原码、反码、补码转换。short、int、long类型有无符号位输出
- Java 对byte,short,char,int,long 运算时自动类型转化情况说明
- Objective-C数量类型-Objective-C float 浮点类型
- C# 类型 byte,int,short,long,decimal,double,float
- java byte、short、int、long、float、double、char基本数据类型范围
- Objective-C数量类型-Objective-C int 整数类型
- 数据类型 char,int,short,long long,id
- Objective-C数量类型-Objective-C 基本数据类型和常量
- 数据类型 -- char , unsigned char = BYTE, short, unsigned short = WORD, long, unsigned long = DWORD, int , unginged int = UINT
- java中byte、short、int、long、float、double类型的取值范围