如何在Go中将整数转换为二进制形式,反之亦然

huangapple go评论70阅读模式
英文:

How to convert an integer to binary form in Go and vice versa

问题

我如何将整数转换为二进制形式?

我目前正在编写一个程序,它接受一个整数并将其转换为二进制形式。
它还应该接受二进制数并将其反转并转换回整数并打印出来。

例如:

12 -> 1100 -> 0011 -> 3

所以这个程序基本上应该:
输入:12
输出:3

package main

import (
	"fmt"
	"strconv"
)

var j int

func main() {
	fmt.Scan(&j)
	n := int64(j)
	y := strconv.FormatInt(n, 2)
	fmt.Println(y)
	reverse(y)
}

func reverse(y string) {
}
英文:

How do i convert an Integer to binary form?

I'm currently working on a program that takes an integer and converts it to binary form.
It should also take the binary number and reverse it and convert it back to an integer and print it out.

i.e.

> <code>12 -> 1100 -> 0011 -> 3</code>

So the program should basically:
Input: 12
Output: 3

package main

import (
	&quot;fmt&quot;
	&quot;strconv&quot;
)

var j int

func main() {
	fmt.Scan(&amp;j)
	n := int64(j)
	y := strconv.FormatInt(n, 2)
	fmt.Println(y)
	reverse(y)
}

func reverse(y string) {
}

答案1

得分: 4

你可能想要使用encoding/binary

示例(goplay):

package main

import "fmt"
import "encoding/binary"
import "bytes"

func main() {
    j := int32(5247)
    buf := new(bytes.Buffer)
    err := binary.Write(buf, binary.BigEndian, j)
    if err != nil {
        fmt.Println(err)
        return
    }
    var k int32
    err = binary.Read(buf, binary.BigEndian, &k)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(k)
}
英文:

You probably want to use encoding/binary.

Example (goplay):

package main

import &quot;fmt&quot;
import &quot;encoding/binary&quot;
import &quot;bytes&quot;

func main() {
	j := int32(5247)
	buf := new(bytes.Buffer)
	err := binary.Write(buf, binary.BigEndian, j)
	if err != nil {
		fmt.Println(err)
		return
	}
	var k int32
	err = binary.Read(buf, binary.BigEndian, &amp;k)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(k)
}

huangapple
  • 本文由 发表于 2013年4月5日 01:13:20
  • 转载请务必保留本文链接:https://go.coder-hub.com/15817536.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定