Swift——如何将某一进制的数字按另一种进制输出(比如十进制输出打印成十六进制,八进制打印输出成二进制)

最近由于需要阅读比较老的文档,老文档里内存地址是用八进制而不是十六进制,所以需要写一个小工具,用来转换进制进制。虽然自带的计算器可以,但是数量一多比较麻烦。

Swift——如何将某一进制的数字按另一种进制输出(比如十进制输出打印成十六进制,八进制打印输出成二进制)_第1张图片

一开始我想费劲吧啦写十二个转换函数,虽然有些函数可以套,但是还是蛮费劲的。所以我就寻找了一下简单方法,结果发现String类型有个特别神奇的方法,
就是使用下面的代码可以直接得到转换之后字符串:

String(a, radix: 16, uppercase: true)

各个参数含义如下:

  1. 这里的a是源数值,你也可以直接在这写一个数字。
  2. radix:后面是目标进制的大小,支持 2~36,也就是从 2 进制到 36 进制。
  3. uppercase:这个参数不一定要有,它是为了将一些进制输出的字母大写。

比如下面是是将 10 进制转换成 32 进制,并且将输出里的字母大写:

Swift——如何将某一进制的数字按另一种进制输出(比如十进制输出打印成十六进制,八进制打印输出成二进制)_第2张图片

如果你想更改输入数字的进制,那么 Swift 支持 4 种原生支持的进制:

  1. 在数字前面加上0b表示二进制,比如0b1011
  2. 在数字前面加上0o表示八进制,比如0o240
  3. 在数字前面加上0x表示十六进制,比如0x12F(这里的F大小写都可以);
  4. 数字前什么都不加表示十进制,比如123

希望能帮到有需要的人~

你可能感兴趣的:(Swift/SwiftUI,swift)