(iOS-基本知识)int long NSInteger 入门与兼容问题讲解
//转载: http://blog.csdn.net/zhao18933/article/details/46925675
系统区别
在32位系统中
int 占4个字节
long 占4个字节
NSInteger 是int的别名,占4个字节
long long 占8个字节
int32_t 是int的别名,占4个字节
int64_t 是long long的别名,占8个字节
在64位系统中
int 占4个字节
long 占8个字节
NSInteger 是long的别名,占8个字节
long long 占8个字节
int32_t 是int的别名,占4个字节
int64_t 是long long的别名,占8个字节
由于long和NSInteger的字节数变了,所以在兼容的时候可能会导致溢出
变量范围
4字节的整数变量,它的范围是
-2147483648 ~ 2147483647
如果不带符号,它的范围是
0 ~ 4294967295
8字节的整数变量,它的范围是
-9223372036854775808 ~ 9223372036854775807
如果不带符号,它的范围是
0 ~ 18446744073709551615
所以对于一个11位的整数,它在64位系统中使用NSInteger或者long类型,是可以正常存储的
如果是在32位系统中,它就溢出了
要保证某些较大的整数可以正常使用,那么就需要使用long long或者int64_t这样的类型
另外在类型转换的时候
例如 int64_t转换成NSInteger,在64位系统中是正常的
但在32位系统中就可能会导致溢出
总结:
在兼容32位和64位系统,使用int, long long(或者int32_t,int64_t)这样的数据类型比使用NSInteger可靠得多
补充:考虑最大范围,较大的使用long long;较小的NSInteger。节省空间。
(iOS-基本知识)int long NSInteger 入门与兼容问题讲解相关推荐
- 一篇文章普及各种ios基本知识(防止奸商忽悠、鉴别假冒翻新机、知识入门必备)
关键字:刷机 激活 SHSH 降级 越狱 Cydia Apple Store iTunes Store iTunes 内购 行货 水货 港版 日版 美版 翻新机 IMEI/序列号/串号 三码合一 有锁 ...
- IOS基础知识-ARC,分类,Block
IOS基础知识-ARC,分类,Block ARC快速入门 本小节知识点: 1.ARC机制判断 2.ARC快速使用 ARC基本概念 本小节知识点: 1.什么是ARC 2.ARC的注意点和优点 3.ARC ...
- Python基础知识详解 从入门到精通(八)魔法方法
目录 Python基础知识详解 从入门到精通(八)魔法方法 什么是魔法方法 基础魔法方法(较为常用) 比较操作符 算数运算符 反运算(类似于运算方法) 增量赋值运算 一元操作符 类型转换 上下文管理( ...
- 学习插画前期需要什么基础知识?插画师入门基础先学什么?
学习插画前期需要什么基础知识?插画师入门基础先学什么?零基础到插画师需要学多久?想必这些问题都是初学者比较伤脑筋的问题,那么初学者学习插画前期需要什么基础知识呢?今天小编就在网络上收集整理了关于插画师 ...
- 【专知荟萃18】目标跟踪Object Tracking知识资料全集(入门/进阶/论文/综述/视频/专家,附查看)
原创: 专知内容组 专知 2017-11-18 点击上方"专知"关注获取专业AI知识! [导读]主题荟萃知识是专知的核心功能之一,为用户提供AI领域系统性的知识学习服务.主题荟萃为 ...
- 一篇文章普及各种ios基本知识
一篇文章普及各种ios基本知识 关键字:刷机 激活 SHSH 降级 越狱 Cydia Apple Store iTunes Store iTunes 内购 行货 水货 港版 日版 美版 翻新机 IME ...
- IOS开发高手课第一篇 构建自己的IOS开发知识体系
开篇词 | IOS开发锚定一个点,然后在这个点上深耕 你好,我是戴铭,欢迎你加入我的 iOS 开发专栏. 说起 iOS 开发,自然是绕不开 iPhone 和 App Store 这两个词.多少年过去了 ...
- 大数据技术之Hadoop分布式文件系统HDFS系统知识整理(从入门到熟练操作)
系列博客 1.大数据技术之Hadoop完全分布式集群搭建+Centos7配置连通外网和主机 2.大数据技术之Hadoop编译源码 3.大数据技术之Hadoop分布式文件系统HDFS系统知识整理(从入门 ...
- iOS 单元测试和 UI 测试快速入门
iOS 单元测试和 UI 测试快速入门 前言 平时写完业务代码的时候都会去自己测试一遍,后面每次有修改都需要重复测,不管是一个业务流程还是一个工具类,其实都可以通过测试框架来帮助我们完成测试,特别是一 ...
最新文章
- 单片机电子电路中常用的负压产生电路
- 杭州中联高级技术培训中心CCNA实验手册
- 一个比较完美的spacer div技巧
- linux查看修改环境变量日志,linux查看和修改PATH环境变量的方法
- Leetcode 5. 最长回文子串(Longest Palindromic Substring)
- HADOOP__PIG安装与配置
- JavaScript Document对象DOM
- Flutter基础—常用控件之图片
- 离线人脸识别C#类库分享 虹软2.0版本
- iOS应用架构谈 本地持久化方案及动态部署
- 显示器显示颜色差,导致BUG一例
- 敏捷个人A1组第三次练习讨论 你是如何管理你的精力的?
- nc windows安装教程
- Python HackerRank 刷题 Pairs
- 智能云服务器选型,智能主机概述、选型及应用
- 安全管理实务之四:口令管理(转)
- 收到offer不想去,如何优雅拒绝?
- js的数据类型,深拷贝和浅拷贝的原理,loda实现一个深拷贝
- 5000字、12字 连环炮、一张图快速解决线程池
- git地址打不开和广告拦截软件的关系