Go 语言程序:将二进制转换为八进制


本文将介绍 Go 语言代码,用于将二进制数转换为八进制数。二进制数是以 2 为基数的数字,即每个数字只有 2 种可能:0 和 1。八进制数是以 8 为基数的数字,即每个数字只有 8 种可能,从 0 到 7。

算法

步骤 1 − 导入 fmt 包。

步骤 2 − 启动 main 函数并初始化所需的 int 类型变量,命名为 binary、octal、remainder 和 j。并为它们存储初始值。

步骤 3 − 将选定的二进制数存储到另一个变量中,以便稍后使用,并开始 for 循环。我们将使用此 for 循环作为 while 循环。

步骤 4 − 在此循环中,我们需要首先找到二进制数除以 10 的余数。

步骤 5 − 然后通过将余数乘以 j 并将其添加到先前的八进制值中来找到八进制数。将 j 的计数增加 2 的倍数。

步骤 6 − 使用 fmt.Println() 函数在屏幕上打印结果。

步骤 7 − 使用不同的二进制数重复上述步骤,并在屏幕上打印其相应的八进制等价物。

示例 1

在本示例中,我们将编写一个 Go 语言程序,使用取模运算符将二进制数转换为八进制数。

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

结论

我们已成功编译并执行了一个 Go 语言程序,用于将二进制数转换为八进制数,并附带示例。在第一个程序中,我们使用 for 循环将二进制数转换为八进制数,而在第二个程序中,我们创建了两个函数,一个用于将二进制数转换为十进制数,另一个用于将获得的十进制结果转换为八进制数。

更新于: 2023年2月9日

290 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.