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。

更新于: 2022-11-30

347 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告