Swift 程序将十进制转换为八进制

swiftserver side programmingprogramming更新于 2025/9/20 8:22:17

本教程将讨论如何编写 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。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部