【问题标题】:Does converting UInt8(or similar types) to Int counter the purpose of UInt8?将 UInt8(或类似类型)转换为 Int 是否与 UInt8 的目的相反?
【发布时间】:2016-06-01 23:50:30
【问题描述】:

我在我的程序中将许多整数存储为UInt8,值范围为 0 - 255。现在稍后我将对它们中的许多求和以获得能够存储到Int 中的结果。在将值从 UInt8 添加到 Int 之前,我必须进行的这种转换是否会破坏我使用较小数据类型开始的目的?我觉得只使用Int 会更快,但会占用更大的内存。但是,当我不得不面对许多降低速度和增加内存的转换时,为什么还要选择UInt8。有什么我遗漏的吗,或者较小的数据类型真的应该只与其他小型数据类型一起使用吗?

【问题讨论】:

    标签: swift memory integer


    【解决方案1】:

    当存储为 UInt8 而不是 Int 时,您正在谈论每个变量的几个 字节。这些数据类型是在计算历史的早期构想出来的,当时内存是在低 KB 中测量的。甚至 Apple Watch 也有 512MB。

    这是 Apple 在Swift Book 中所说的:

    除非您需要使用特定大小的整数,否则请始终在代码中使用Int 作为整数值。这有助于代码一致性和互操作性。即使在 32 位平台上,Int 也可以存储介于 -2,147,483,648 和 2,147,483,647 之间的任何值,并且足以容纳许多整数范围。

    我主要在处理 C 的代码中使用 UInt8UInt16UInt32。是的,来回转换是一件令人头疼的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 2020-03-03
      • 2018-04-02
      相关资源
      最近更新 更多