Swift 程序将十进制转换为八进制
本教程将讨论如何编写 Swift 程序将十进制转换为八进制。
十进制数是指基数为 10 的数字。十进制数也称为十进制数系,包含 10 个数字:0、1、2、3、4、5、6、7、8、9。其中,十进制数中每位数字的权重是 10 的幂。
八进制数是指基数为 8 的数字。八进制数也称为八进制数系,包含 8 个数字:0、1、2、3、4、5、6、7。其中,八进制数中每位数字的权重是8 的幂。
现在,我们使用以下任意一种方法将十进制数(基数为 10)转换为八进制数(基数为 8)。
以下是相同的演示 -
输入
假设给定的输入是 -
十进制数 = 10
输出
所需的输出将是 -
八进制数 = 12
方法 1:使用除法将十进制转换为八进制
要将十进制转换为八进制,我们将数字除以 8,并将余数存储在变量中,直到数字等于0.
算法
以下是算法 -
步骤 1 - 用十进制数初始化一个变量。
步骤 2 - 初始化 octalNumber = 0 和 count = 1
步骤 3 - 求十进制数除以 8 的余数。
步骤 4 - 更新八进制数值
octalNumber += rem * count
步骤 5 - 现在增加 count 的值
count = count * 10
步骤 6 - 将给定的十进制数除以 8
number /= 8
步骤 7 - 重复以上步骤,直到 number 的值变为 0。
步骤 8 - 打印输出。
示例
以下程序演示如何将十进制转换为八进制。
import Foundation
import Glibc
// 十进制数
var number = 29
var octalNumber = 0
var count = 1
print("十进制数:", number)
// 检查给定数字是否为零
while(number != 0) {
// 计算余数
let rem = number % 8
// 存储八进制数
octalNumber += rem * count
// 存储指数值
count = count * 10
// 将数字除以 8
number /= 8
}
print("八进制结果:", octalNumber)
输出
十进制数:29 八进制结果:35
在上面的代码中,我们使用以下代码将十进制数转换为八进制数 -
while(number != 0) {
let rem = number % 8
octalNumber += rem * count
count = count * 10
number /= 8
}
因此,上述代码的工作原理是 -
Initially, Number = 29
octalNumber = 0
count = 1
1st iteration:
while(29 != 0) // condition is true {
let rem = number % 8 = 29 % 8 = 5
octalNumber += rem * count = 0 + 5 * 1 = 5
count = count * 10 = 1 * 10 = 10
number /= 8 = 29/8 = 3
}
2st iteration:
while(3 != 0) // condition is true {
let rem = number % 8 = 3 % 8 = 3
octalNumber += rem * count = 5 + 3 * 10 = 35
count = count * 10 = 10 * 10 = 100
number /= 8 = 3/8 = 0
}
3rd iteration:
while(0 != 0) // 条件为假 {
}
// 退出循环并打印 35。
方法 2:使用 String(_:RADIX:) 将十进制转换为八进制。
我们也可以使用 String(_:radix:) 将十进制转换为八进制。此方法根据给定的字符串和基数创建一个新值。
语法
语法如下:
String(value, radix: base)
这里,value 是数字的 ASCII 表示形式。而 radix 用于将文本转换为整数值。基数的默认值为 10,范围为 2…36。
示例
以下程序演示了如何将十进制转换为八进制。
import Foundation
import Glibc
// 十进制数
var number = 18
print("十进制数:", number)
// 查找八进制数
if let octalNumber = Int(String(number, radix: 8)){
print("八进制数:", octalNumber)
}
输出
十进制数:18 八进制数:22
这里,我们使用以下代码将十进制数 18 转换为八进制数 -
if let octalNumber = Int(String(number, radix: 8)){
print("八进制数:", octalNumber)
}
String(number, radix: 8) 将给定的十进制数转换为八进制数字符串,然后使用 Int() 将字符串转换为整数值。因此,得到的八进制数为 22。