将UInt8(或类似类型)转换为Int会对抗UInt8的目的吗?

时间:2016-06-01 23:50:31

标签: swift memory integer

我将程序中的许多整数存储为Int,其值为0 - 255。现在稍后,我将总结其中的许多内容,以获得能够存储到UInt8的结果。在将Int中的值添加到Int之前,我必须进行此转换,这会使我使用较小的数据类型来破坏我的目的吗?我觉得仅仅使用UInt8会更快,但遭受更大的内存占用。但是,当我不得不面对许多降低速度和增加记忆的转换时,为什么选择//after searching through the stackoverflow tried lsof -wni tcp:3000 and kill //-9 2376, didnt help 。是否有我缺少的东西,或者较小的数据类型是否真的只与其他小数据类型一起使用?

1 个答案:

答案 0 :(得分:1)

在存储为UInt8而不是Int时,每个变量都会讨论几个字节。这些数据类型是在计算历史的早期构想出来的,当时内存是以低KB来衡量的。即使Apple Watch也有512MB。

这是Apple在Swift Book中所说的内容:

  

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

我主要在处理C的代码中使用UInt8UInt16UInt32。是的,来回转换是一个痛苦的问题。