Swift程序将十进制转换为八进制
本教程将讨论如何编写 Swift 程序将十进制转换为八进制。
十进制数是指基值为 10 的数字。十进制数也称为以 10 为基数的数字系统,包含 10 个数字:0、1、2、3、4、5、6、7、8、9。在这里,十进制数中每个数字的位置权重都是 10 的幂。
八进制数是指基值为 8 的数字。八进制数也称为以 8 为基数的数字系统,包含 8 个数字:0、1、2、3、4、5、6、7。在这里,八进制数中每个数字的位置权重都是 8 的幂。
现在,我们使用以下任何一种方法将十进制数(基数-10)转换为八进制数系统(基数-8)。
以下是相同内容的演示 -
输入
假设我们给定的输入是 -
Decimal number = 10
输出
期望的输出将是 -
Octal number = 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 - 重复上述步骤,直到数字的值变为 0。
步骤 8 - 打印输出。
示例
以下程序展示了如何将十进制转换为八进制。
import Foundation import Glibc // Decimal number var number = 29 var octalNumber = 0 var count = 1 print("Decimal Number:", number) // Checking if the given number is not zero while(number != 0) { // Calculating remainder let rem = number % 8 // Storing octal number octalNumber += rem * count // Storing exponential value count = count * 10 // Dividing the number by 8 number /= 8 } print("Resultant Octal Number:", octalNumber)
输出
Decimal Number: 29 Resultant Octal Number: 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) // condition is false { } // Exit from the loop and print 35.
方法 2 使用 String(_:radix:) 将十进制转换为八进制数系统。
我们还可以使用 String(_:radix:) 将十进制转换为八进制数系统。此方法根据给定的字符串和基数创建一个新值。
语法
以下是语法 -
String(value, radix: base)
这里,value 是数字的 ASCII 表示形式。而 radix 用于将文本转换为整数。radix 的默认值为 10,其值范围为 2…36。
示例
以下程序展示了如何将十进制转换为八进制。
import Foundation import Glibc // Decimal number var number = 18 print("Decimal Number:", number) // Finding octal number if let octalNumber = Int(String(number, radix: 8)){ print("Octal Number:", octalNumber) }
输出
Decimal Number: 18 Octal Number: 22
这里,我们使用以下代码将十进制数 18 转换为八进制数 -
if let octalNumber = Int(String(number, radix: 8)){ print("Octal Number:", octalNumber) }
其中 String(number, radix: 8) 将给定的十进制数转换为八进制数字符串,然后使用 Int() 将字符串转换为整数。因此,结果八进制数为 22。