// numFormat project main.go
package main
import (
"bytes"
"encoding/binary"
"log"
"reflect"
"strconv"
)
func main() {
log.SetFlags(log.Lshortfile)
num := int64(123456789)
for i := 2; i <= 36; i++ {
str := strconv.FormatInt(num, i)
log.Println("str = ", str)
}
/* 二进制到36进制各种转换 */
num2 := uint64(123456789)
for i := 2; i <= 36; i++ {
str := strconv.FormatUint(num2, i)
log.Println("str = ", str)
}
numbin := strconv.AppendUint(nil, num2, 2) //转换为二进制存入到 []byte 里面
log.Println("numbin = ", numbin)
log.Println("num2 = ", num2, " binary = ", string(numbin))
log.Println(reflect.ValueOf(numbin).Index(0).Kind()) //uint8
/*存入到 []byte 里面去*/
buff := bytes.NewBuffer([]byte{})
binary.Write(buff, binary.LittleEndian, num2)
log.Println("num2 = ", num2, "byte littleEndian = ", buff.Bytes())
log.Println(reflect.ValueOf(buff.Bytes()).Index(0).Kind()) //uint8
var num3 uint64
binary.Read(buff, binary.LittleEndian, &num3)
log.Println("num3 = ", num3)
st := []rune("你好, Hello!")
log.Println(reflect.ValueOf(st).Index(0).Kind()) //int32
}
输出:
C:/Go/bin/go.exe build -i [D:/golang/src/numFormat]
成功: 进程退出代码 0.
D:/golang/src/numFormat/numFormat.exe [D:/golang/src/numFormat]
main.go:19: str = 111010110111100110100010101
main.go:19: str = 22121022020212200
main.go:19: str = 13112330310111
main.go:19: str = 223101104124
main.go:19: str = 20130035113
main.go:19: str = 3026236221
main.go:19: str = 726746425
main.go:19: str = 277266780
main.go:19: str = 123456789
main.go:19: str = 63762a05
main.go:19: str = 35418a99
main.go:19: str = 1c767471
main.go:19: str = 12579781
main.go:19: str = ac89bc9
main.go:19: str = 75bcd15
main.go:19: str = 51g2a21
main.go:19: str = 3b60f89
main.go:19: str = 2bg64ae
main.go:19: str = 1ibc1j9
main.go:19: str = 194gh7f
main.go:19: str = 11l0805
main.go:19: str = j43jfb
main.go:19: str = fc2egl
main.go:19: str = cg15le
main.go:19: str = aa44a1
main.go:19: str = 8g86ni
main.go:19: str = 74nqb1
main.go:19: str = 60fshj
main.go:19: str = 52ce69
main.go:19: str = 49l302
main.go:19: str = 3lnj8l
main.go:19: str = 353c3r
main.go:19: str = 2od2i1
main.go:19: str = 2c9g1t
main.go:19: str = 21i3v9
main.go:26: str = 111010110111100110100010101
main.go:26: str = 22121022020212200
main.go:26: str = 13112330310111
main.go:26: str = 223101104124
main.go:26: str = 20130035113
main.go:26: str = 3026236221
main.go:26: str = 726746425
main.go:26: str = 277266780
main.go:26: str = 123456789
main.go:26: str = 63762a05
main.go:26: str = 35418a99
main.go:26: str = 1c767471
main.go:26: str = 12579781
main.go:26: str = ac89bc9
main.go:26: str = 75bcd15
main.go:26: str = 51g2a21
main.go:26: str = 3b60f89
main.go:26: str = 2bg64ae
main.go:26: str = 1ibc1j9
main.go:26: str = 194gh7f
main.go:26: str = 11l0805
main.go:26: str = j43jfb
main.go:26: str = fc2egl
main.go:26: str = cg15le
main.go:26: str = aa44a1
main.go:26: str = 8g86ni
main.go:26: str = 74nqb1
main.go:26: str = 60fshj
main.go:26: str = 52ce69
main.go:26: str = 49l302
main.go:26: str = 3lnj8l
main.go:26: str = 353c3r
main.go:26: str = 2od2i1
main.go:26: str = 2c9g1t
main.go:26: str = 21i3v9
main.go:30: numbin = [49 49 49 48 49 48 49 49 48 49 49 49 49 48 48 49 49 48 49 48 48 48 49 48 49 48 49]
main.go:31: num2 = 123456789 binary = 111010110111100110100010101
main.go:32: uint8
main.go:37: num2 = 123456789 byte littleEndian = [21 205 91 7 0 0 0 0]
main.go:38: uint8
main.go:42: num3 = 123456789
main.go:45: int32
成功: 进程退出代码 0.
注:
[]rune 元素对应的类型为 int32
[]byte 元素对应的类型为 uint8