swift - 在 Swift 中十进制、二进制和十六进制之间转换

标签 swift binary hex

我想知道的是最有效的代码转换方式(在 swift 2 中):

  • 十进制转二进制
  • 二进制转十进制
  • 十进制转十六进制
  • 十六进制转十进制
  • 二进制转十六进制
  • 十六进制转二进制

我已经有了一个基本的、冗长的方法来实现这个目标,但我想找到一个更有效的方法。

最佳答案

StringInt 都有采用radix(基数)的初始化器。结合这些,您可以实现所有转换:

// Decimal to binary
let d1 = 21
let b1 = String(d1, radix: 2)
print(b1) // "10101"

// Binary to decimal
let b2 = "10110"
let d2 = Int(b2, radix: 2)!
print(d2) // 22

// Decimal to hexadecimal
let d3 = 61
let h1 = String(d3, radix: 16)
print(h1) // "3d"

// Hexadecimal to decimal
let h2 = "a3"
let d4 = Int(h2, radix: 16)!
print(d4) // 163

// Binary to hexadecimal
let b3 = "10101011"
let h3 = String(Int(b3, radix: 2)!, radix: 16)
print(h3) // "ab"

// Hexadecimal to binary
let h4 = "face"
let b4 = String(Int(h4, radix: 16)!, radix: 2)
print(b4) // "1111101011001110"

关于swift - 在 Swift 中十进制、二进制和十六进制之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36966442/

相关文章:

java - 为什么 Java 中的十六进制实数需要指数

javascript - 在 JavaScript 中将 float 转换为 32 位十六进制字符串

Swift 协议(protocol)一致性

swift - 如何在 tvOS 中以编程方式更改焦点

c - 在 C 中使用按位运算和指针算法将二进制转换为无符号整数

创建递归函数以返回异或运算结果的整数

perl - 为什么perl的unpack()认为第二个参数是字符串?

将十六进制扫描 (scanf) 从无符号整数数组转换为十进制

ios - 在 Xcode Swift 中显示空白/白色 View 的弹出窗口演示文稿

ios - 无效编码的 Base64 图像数据