javascript - 将 5 位二进制字符串解码回字符

标签 javascript swift string binary

我创建了一个简单的函数,可以将每个字母字符 (a-z) 转换为 always 5-digit binary string (like "00000->a"或“11000->y”)

SWIFT:

 let alphabeth_array=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "", "", "", "", "", ""]
 for i in 0..<32 {
   let binary_code = String(i/16%2) + String(i/8%2) + String(i/4%2) + String(i/2%2) + String(i%2)
   print("\(alphabeth_array[i]) : \(binary_code)")
}



JavaScript:

 var alphabeth_array=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "", "", "", "", "", ""]
 for (var i=0; i<32; i++) {
   var binary_code = (i/16%2).toString() + (i/8%2).toString() + (i/4%2).toString() + (i/2%2).toString() + (i%2).toString()
   console.log(alphabeth_array[i] + " : " + binary_code)
}



但现在我想将二进制字符串解码回它们从 alphabeth_array 中连接的字符,您可以在上面找到。

SWIFT:

let binary = "00000" //starting with the binary string
let character = getChar(binaryCode: binary)

func getChar(binaryCode: String) -> (String) {
   // programm logic
   return result
}



JavaScript:

var binary = "00000" //starting with the binary string
var character = getChar(binary)


function getChar(binary) {
   // programm logic
   return result
}

我完全不知道如何反转解码函数以将二进制字符串转换回连接的字符。任何帮助将不胜感激,谢谢! (我更愿意只获取一些小代码片段,Swift 或 javascript - 哪种语言无关紧要 !)

最佳答案

您可以使用 init?<S>(_ text: S, radix: Int = default) where S : StringProtocol初始化程序将二进制字符串转换为整数,并将其用作访问字母数组元素的索引。您也可以使用 String(_ value:, radix:, uppercase:) 将数组索引转换为二进制的初始化程序:

let alphabeth = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
var bins: [String] = []
for index in alphabeth.indices {
    let binary = String(index, radix: 2)
    let zeros = repeatElement("0", count: 5 - binary.count).joined()
    bins.append("\(zeros)\(binary)")
    print(alphabeth[index], bins.last!)
}
for binary in bins {
    if let index = Int(binary, radix: 2) {
        print(alphabeth[index])
    }   
}

关于javascript - 将 5 位二进制字符串解码回字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48153662/

相关文章:

javascript - 计算文本选择的 xy 位置

c# - 如何使用 dom-construct 插入带有查询字符串的 iframe 并在 Controller 中读取请求?

ios - addPeriodicTimeObserver保留AVPlayer实例

java - 在Java中的字符串中的特定位置添加特定字符

javascript - 展开运算符在 javascript 中无法正常工作

javascript - 检查一条线和一个网格是否在 three.js 中相交

ios - swift/用户界面开关 : how to implement a delegate/listener

ios - 自定义单元格中未调用 UITableView didSelectRowAt indexPath

java - 使用 char 而不是 String 来结束 do while 循环。这是可能的? java

Python 将字符串转换为带负数的 float 错误