你好,我想在Swift中将一个八进制数字转换为十进制。有什么简单的方法吗?
有一个特定的Int
初始化器可以实现此功能。
let octal = 10
if let decimal = Int(String(octal), radix: 8) {
print(decimal) // 8
}
let decimal = 8
if let octal = Int(String(decimal, radix: 8)) {
print(octal) // 10
}
注意1:请注意,这两个代码片段中的括号是不同的。
注意2:使用更奇异基数表示的数字的字符串形式可能使Int
初始化器失败。请阅读下面@AMomchilov 的评论。Int
初始化程序可能会因数字的字符串表示形式具有更奇异的基数而失败。无论如何,您都不需要进行Int
转换,您可以直接打印String(_:, radix:)
调用的结果。 - Alexanderlet number = 0o10
print(number) // it prints the number 8 in decimal
整型字面值
整型字面值表示未指定精度的整数值。默认情况下,整型字面值使用十进制表示;您可以使用前缀指定其他基数。二进制字面值以0b开头,八进制字面值以0o开头,十六进制字面值以0x开头。
这里是文档的参考。
希望它能帮到你。