最近由于需要阅读比较老的文档,老文档里内存地址是用八进制而不是十六进制,所以需要写一个小工具,用来转换进制进制。虽然自带的计算器可以,但是数量一多比较麻烦。
一开始我想费劲吧啦写十二个转换函数,虽然有些函数可以套,但是还是蛮费劲的。所以我就寻找了一下简单方法,结果发现String
类型有个特别神奇的方法,
就是使用下面的代码可以直接得到转换之后字符串:
String(a, radix: 16, uppercase: true)
各个参数含义如下:
- 这里的
a
是源数值,你也可以直接在这写一个数字。 radix:
后面是目标进制的大小,支持 2~36,也就是从 2 进制到 36 进制。uppercase:
这个参数不一定要有,它是为了将一些进制输出的字母大写。
比如下面是是将 10 进制转换成 32 进制,并且将输出里的字母大写:
如果你想更改输入数字的进制,那么 Swift 支持 4 种原生支持的进制:
- 在数字前面加上
0b
表示二进制,比如0b1011
; - 在数字前面加上
0o
表示八进制,比如0o240
; - 在数字前面加上
0x
表示十六进制,比如0x12F
(这里的F
大小写都可以); - 数字前什么都不加表示十进制,比如
123
。
希望能帮到有需要的人~