我想知道整数16,整数32和整数64之间的区别,以及有符号整数和无符号整数(NSInteger和NSUInteger)之间的区别
发布于 2011-02-07 23:18:55
NSInteger和NSUInteger是苹果公司的自定义整数数据类型。第一个是已签名的,而后者是未签名的。在32位构建中,NSInteger被定义为整型,而在64位构建中,它被定义为长整型。NSUInteger的类型定义为32位的无符号整数和64位的无符号长整型。有符号类型的范围是- 2^(n-1),2^(n-1),其中n是位值,无符号类型的范围是0,2^n。
当为一个独立的程序编写代码时,使用NSInteger或NSUInteger被认为是防止平台位更改的最佳实践。在处理固定大小的数据需求时,这不是最佳实践,因为所需的字段宽度是预先定义的,并且与平台位级别无关,因此不是最佳实践。这就是stdint.h中定义的固定大小类型(即uint8_t、uint16_t、uint32_t等)的用武之地。
发布于 2011-02-07 19:29:49
无符号vs有符号整数-
无符号通常用在变量不允许取负数的地方。例如,当循环遍历数组时,如果数组下标变量是无符号整数并循环到数组的长度,那么它总是有用/可读的。
另一方面,如果变量也可以有负数,则将变量声明为带符号的int。默认情况下,整数变量是有符号的。
发布于 2011-02-07 19:30:55
看一看Foundation Data types。整数和无符号整数的NInteger和NSUInteger以及类型定义。
来自维基百科
在计算中,在二进制系统中对负数进行编码时需要使用带符号的数字表示法
这意味着你通常必须使用一个位来编码符号,从而减少了你可以表示的数字的范围。
https://stackoverflow.com/questions/4925511
复制相似问题