首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >NSInteger类型

NSInteger类型
EN

Stack Overflow用户
提问于 2011-02-08 03:22:00
回答 3查看 5.1K关注 0票数 5

我想知道整数16,整数32和整数64之间的区别,以及有符号整数和无符号整数(NSInteger和NSUInteger)之间的区别

EN

回答 3

Stack Overflow用户

发布于 2011-02-08 07: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等)的用武之地。

票数 5
EN

Stack Overflow用户

发布于 2011-02-08 03:29:49

无符号vs有符号整数-

无符号通常用在变量不允许取负数的地方。例如,当循环遍历数组时,如果数组下标变量是无符号整数并循环到数组的长度,那么它总是有用/可读的。

另一方面,如果变量也可以有负数,则将变量声明为带符号的int。默认情况下,整数变量是有符号的。

票数 1
EN

Stack Overflow用户

发布于 2011-02-08 03:30:55

看一看Foundation Data types。整数和无符号整数的NInteger和NSUInteger以及类型定义。

来自维基百科

在计算中,在二进制系统中对负数进行编码时需要使用带符号的数字表示法

这意味着你通常必须使用一个位来编码符号,从而减少了你可以表示的数字的范围。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4925511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档