viceversa traductor suma número numeros convertidor conversión conversion codigo binarios binario binary go numeric

binary - traductor - Conversión de un entero a su representación binaria



suma de binarios (4)

Basándose en la respuesta proporcionada por @Mark

A pesar de que el OP preguntó cómo imprimir un número entero, a menudo quiero ver más de 64 bits de datos, sin que mis ojos se asombren:

/* --- Credit to Dave C in the comments --- */ package main import ( "bytes" "fmt" ) func main() { fmt.Printf("<%s>/n", fmtBits([]byte{0xDE, 0xAD, 0xBE, 0xEF, 0xF0, 0x0D, 0xDE, 0xAD, 0xBE, 0xEF, 0xF0, 0x0D})) // OUTPUT: // <11011110 10101101 10111110 11101111 11110000 00001101 11011110 10101101 10111110 11101111 11110000 00001101> } func fmtBits(data []byte) []byte { var buf bytes.Buffer for _, b := range data { fmt.Fprintf(&buf, "%08b ", b) } buf.Truncate(buf.Len() - 1) // To remove extra space return buf.Bytes() } vea este código en play.golang.org

Alguien tiene una idea de si hay alguna función incorporada en Ir para convertir de cualquiera de los tipos numéricos a su forma de número binario.

Por ejemplo, si 123 fue la entrada, la cadena "1111011" sería la salida.


El paquete strconv tiene FormatInt , que acepta un int64 y le permite especificar la base.

n := int64(123) fmt.Println(strconv.FormatInt(n, 2)) // 1111011

DEMO: http://play.golang.org/p/leGVAELMhv

http://golang.org/pkg/strconv/#FormatInt

func FormatInt(i int64, base int) string

FormatInt devuelve la representación de cadena de i en la base dada, para 2 <= base <= 36. El resultado usa las letras minúsculas ''a'' a ''z'' para valores de dígito> = 10.


Este código funciona en enteros grandes *big.Int :

x := big.NewInt(123) s := fmt.Sprintf("%b", x) // s == "1111011"

porque *big.Int implementa la interfaz fmt.Formatter .

Tomado de https://.com/a/23317788/871134


Ver también el paquete fmt :

n := int64(123) fmt.Printf("%b", n) // 1111011