Golang程序 将二进制转换为八进制

Golang程序 将二进制转换为八进制

在这篇文章中,你将学习Go语言代码,将二进制数转换为八进制数。 二进制数是 以2为基数的数字,即每个数字只有0和1两种可能。 八进制数 是以8为基数的数字,即每个数字只有0到7的8种可能。

算法

第1步 - 导入 fmt 包。

第2步 – 启动主函数并初始化所需的int类型的变量,命名为二进制、八进制、余数和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循环将二进制数转换为八进制数,而在第二个程序中,我们创建了两个函数,一个将二进制数转换为十进制数,另一个将得到的十进制数转换为八进制数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程