首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在iOS Xcode项目或Xcode Playground中使用Swift操作Data或NSData对象中的二进制数字?

如何在iOS Xcode项目或Xcode Playground中使用Swift操作Data或NSData对象中的二进制数字?
EN

Stack Overflow用户
提问于 2019-06-27 07:55:02
回答 1查看 0关注 0票数 0

我在iOS Xcode项目中使用Swift。我想使用Apple Foundation和UIKit Frameworks中的Data或NSData对象来操作二进制数据,以便每个二进制数字表示一个布尔值 - 0表示false,1表示true。

我该怎么办?

我会将CloudKit中的Data对象保存为Bytes类型的字段。

如果我有一个更简单或更实用的方法来使用布尔值,这需要更少的内存并且效率更高,请向我建议。

我似乎记得有一种方法可以将数字格式化为二进制表达式。这将有助于我实现我的目标。

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 17:36:01

您可以在一个字节中存储最多8个二进制(0或1,真或假,白色或黑色)值。例如,假设我们必须在一个字节中存储8个开关状态以及如何访问它们的值,您可以查看关于如何设置特定位开/关的 java问题:

代码语言:javascript
复制
let switches = [false, false, true, true, true, true, true, true]

var pos = 0
let byte: UInt8 = switches.reduce(into: 0) {
    $0 = $1 ? $0 | (1 << pos) : $0 & ~(1 << pos)
    pos += 1
}

print("byte value:", byte)  // 252

let loadedSwitches = (0..<8).map { byte & (1 << $0) != 0 }

loadedSwitches  // [false, false, true, true, true, true, true, true]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007068

复制
相关文章

相似问题

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