Golang 将二进制转换为八进制
在本文中,您将学习将二进制数转换为八进制数的Go语言代码。 二进制数 是基于2的数字,即每个数字只有两个可能性0和1。 八进制数 是基于8的数字,即每个数字只有8个可能性,从0到7。
步骤
步骤1 - 导入 fmt 包。
步骤2 - 启动主函数并初始化所需的int类型变量,命名为binary、octal、remainder和j。将初始值存储到它们中。
步骤3 - 将所选择的二进制数存储到一个不同的变量中以便以后使用,并启动for循环。我们将使用此for循环作为while循环。
步骤4 - 在此循环中,我们首先需要通过将二进制数除以10来找到余数。
步骤5 - 然后通过将余数乘以j并将前一个八进制值加上它来找到八进制数。将j的计数增加2的倍数。
步骤6 - 使用fmt.Println()函数在屏幕上打印结果。
步骤7 - 使用不同的二进制数重复上述步骤,并在屏幕上打印它们的八进制等效数字。
示例1
在此示例中,我们将编写一个Go语言程序,使用mod函数将二进制数转换为八进制数。
package main
import "fmt"
func main() {
var binary int
var octal int = 0
j := 1
var remainder int
binary = 10011011
binarynumber := binary
for binary != 0 {
remainder = binary % 10
octal = octal + remainder*j
j = j * 2
binary = binary / 10
}
fmt.Println("The octal representation of binary number ", binarynumber, "is", octal)
binary = 111111
binarynumber = binary
for binary != 0 {
remainder = binary % 10
octal = octal + remainder*j
j = j * 2
binary = binary / 10
}
fmt.Println("The octal representation of binary number ", binarynumber, "is", octal)
}
输出
The octal representation of binary number 10011011 is 155
The octal representation of binary number 111111 is 16283
示例2
在本程序中,我们将编写Go语言代码来将二进制数转换为八进制数。为了实现这个结果,我们将首先将二进制数转换为十进制,然后将十进制等价转换为八进制。
package main
import (
"fmt"
"math"
)
// initializing and defining a binary number to convert it into decimal
func toDecimal(number int) int {
var remainder int
value := 0
decimalNumber := 0
for number != 0 {
remainder = number % 10
number = number / 10
decimalNumber = decimalNumber + remainder*int(math.Pow(2, float64(value)))
value++
}
return decimalNumber
}
// initializing and defining a function to convert decimal to octal
func toOctal(number int) int {
octal := 0
counter := 1
remainder := 0
for number != 0 {
remainder = number % 8
number = number / 8
octal += remainder * counter
counter *= 10
}
return octal
}
func main() {
number := 1001
binarynum := number
result := toDecimal(number)
oct_num := toOctal(result)
fmt.Println("The octal representation of binary number =", binarynum, "is: ", oct_num)
number = 1100111
binarynum = number
result = toDecimal(number)
oct_num = toOctal(result)
fmt.Println("The octal representation of binary number =", binarynum, "is: ", oct_num)
}
输出
The octal representation of binary number = 1001 is: 11
The octal representation of binary number = 1100111 is: 147
结论
我们成功地编译并执行了一个用于将二进制数转换为八进制的Golang程序,并提供了示例。在第一个程序中,我们使用for循环将二进制数转换为八进制,而在第二个程序中,我们创建了两个函数,一个用于将二进制转换为十进制,另一个用于将所得到的十进制结果转换为八进制。