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。