【问题标题】:Generating an encoded string from a bit value in swift 4.2从 swift 4.2 中的位值生成编码字符串
【发布时间】:2019-09-05 08:25:58
【问题描述】:

首先,很抱歉,如果这没有正确命名或标记,或者没有意义 - 我对这个主题非常陌生,真的可以使用一些指导。

我需要从一个 XX 位的值生成一个 base-36 编码的字符串。

我得到了序列中每个位的精确说明。例如:

  • 位 42-39 是 0b000
  • 位 30 为 ON
  • 位 27 - 0 是 0b1010010100b11000101101000100101000110

等等。

到目前为止,我一直在尝试将位数据聚合为一个数组:

let array : [UInt32] = [0b10100, 1, 0, 1, 0, 0b11000101101000100101000110]

谁能告诉我如何从中提取位序列 (0b1010010100b11000101101000100101000110) 以及以后如何对其进行编码?

谢谢!

【问题讨论】:

  • 你能举出更多例子吗?

标签: swift binary bitwise-operators bit


【解决方案1】:

可以这样做:

let bitValue = 0b11000101101000100101000110
let digitsNumber = 26
var remain = bitValue
var boolArray = [Bool]()
for _ in 0..<digitsNumber {
    let r = remain % 2
    let bitSet = r == 1
    boolArray.insert(bitSet, at: 0)
    remain = (remain - r) / 2
}

print(boolArray)

并得到: [真、真、假、假、假、真、假、真、真、假、真、假、假、假、真、假、假、真、假、真、假、假、假、真、真, 假]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 2021-03-12
    • 2019-03-26
    相关资源
    最近更新 更多