《Core Data应用开发实践指南》一2.5 Integer 16、Integer 32与Integer 64

简介:

本节书摘来自华章出版社《Core Data应用开发实践指南》一书中的第2章,第2.5节,作者 (美)Tim Roadley,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.5 Integer 16、Integer 32与Integer 64

对于属性来说,这三种数据类型是比较相似的,它们都表示没有小数点的整数,唯一区别就在于能够表示多大或多小的数。由于Core Data使用“带符号的整数”(signed integer),所以取值范围从某个负数开始,而不是从0开始:

  1. Integer 16的取值范围是–32 768至32 767
  2. Integer 32的取值范围是–2 147 483 648至2 147 483 647
  3. Integer 64的取值范围是–9 223 372 036 854 775 808至9 223 372 036 854 775 807
    数字的值越大,所占的内存就越多。在这三种整数类型之间选择时,你需要思考当前属性的最小取值和最大取值。如果不能确定的话,那么通常可以选用Integer 32。要是程序出错了,那就说明需要选用一种取值范围更广的数据类型,此时可以把属性的类型提升到Integer 64。我们需要升级托管对象模型才能完成这种修改操作,第3章将会讨论此话题。

Integer使用以2为底的数制,更通俗的说法是二进制。计算机执行整数运算的速度要比执行浮点数运算更快,因为它无需考虑运算所产生的余数。比方说,如果计算10除以3的话,那么只要算出结果是3就好了,余下的那个1可以丢弃。这种运算有个专门的术语,叫做低精度(low precision)运算。如果要用整数来表示货币,那么笔者强烈建议你用“1”表示“1分钱”。这样的话,在执行财务计算的时候就不会出现舍入误差了。
标准整数的最小取值与最大取值可以从stdint.h文件里看到:在Xcode中打开任意类文件,输入INT32_MAX,然后用鼠标右击这几个字符,选择Jump to Definition,你会看到stdint.h文件里定义了各种整数的最小取值与最大取值。你也会注意到:无符号整数的最大取值要比带符号整数的大,这是因为它们的值不会低于0。Core Data只使用带符号的整数,这样做的优点是既能表示负值,又能表示正值,缺点则是最大取值要比无符号整数的小。
根据实体来创建NSManagedObject子类时,如果实体中某个属性的类型为Integer 16、Integer 32或Integer 64,那么在创建好的子类里,相关特性的类型就会是NSNumber。

相关文章
|
前端开发 Java C#
java/C#语言开发的医疗信息系统11套源码
java/C#语言开发的医疗信息系统11套源码
363 2
|
Java 测试技术 Go
利用 GitHub Action 自动发布 Docker
最近公司内部项目的发布流程接入了 GitHub Actions,整个体验过程还是比较美好的;本文主要目的是对于没有还接触过 GitHub Actions的新手,能够利用它快速构建自动测试及打包推送 Docker 镜像等自动化流程。
|
2月前
|
存储 安全 固态存储
c盘满了怎么办
c盘满了怎么办
|
边缘计算 运维 Cloud Native
浙江省科技进步奖一等奖!阿里云云原生技术实现新突破
科技成果鉴定委员会高度评价该技术,“项目研发难度大,成果创新性强,对促进关键技术进步及自主可控具有重大意义,成果在国内外开源社区产生了广泛影响,并成功应用于互联网、交通、金融、物流、医疗等多个行业。”
621 12
|
SQL 自然语言处理 关系型数据库
在 PostgreSQL 中使用 `REPLACE` 函数
【8月更文挑战第8天】
2151 9
在 PostgreSQL 中使用 `REPLACE` 函数
|
6月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 5 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
Docker 容器
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
9445 2
|
12月前
|
机器学习/深度学习 人工智能 监控
《智破光影迷宫:人工智能图像识别的进阶挑战》
在数字化时代,人工智能图像识别技术广泛应用于安防、医疗、交通等领域,显著提升了工作效率和准确性。然而,复杂背景与光照变化成为其发展的两大挑战。复杂背景使目标识别如大海捞针,光照变化则导致同一对象在不同条件下被误判。为应对这些挑战,深度学习技术如卷积神经网络(CNN)崭露头角,通过自动学习多层次特征提高识别精度。同时,光照归一化技术和数据增强等方法也有效提升了图像识别的鲁棒性。未来,随着算法优化和数据积累,图像识别技术将更加智能精准,为社会带来更多的便利与安全保障。
412 7
|
数据采集 JavaScript 前端开发
如何判断一个网站是否采取了反爬虫措施
通过观察请求响应、分析请求频率限制和检测JavaScript动态加载来初步判断网站是否使用反爬虫措施。使用Python `requests` 发送请求并检查响应头和内容,寻找验证码、限制信息。尝试短时间内多次请求,看是否被限制。使用Selenium模拟浏览器行为,获取动态加载内容。注意,这些方法仅为初步判断,实际可能需更深入分析,并确保爬取行为合法合规。
|
存储 缓存 人工智能
云架构师进阶攻略(完整版)-1
云架构师进阶攻略(完整版)
534 0
云架构师进阶攻略(完整版)-1

热门文章

最新文章