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 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告