go语言byte go语言byte转int

Go语言中的字节序

Go中的binary包实现了简单的数字与字节序列的转换以及变长值的编解码

十余年建站经验, 成都做网站、成都网站建设客户的见证与正确选择。成都创新互联公司提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。

package main

import ( "fmt" "bytes" "encoding/binary" ) func main(){ n := 0x12345678 bytesBuffer := bytes.NewBuffer([]byte{}) //BigEndian 大端顺序存储 LittleEndian小端顺序存储 binary.Write(bytesBuffer, binary.BigEndian, int32(n)) data:=bytesBuffer.Bytes() fmt.Printf("[0]: %#x addr:%#x\n",data[0],data[0]) fmt.Printf("[0]: %#x addr:%#x\n",data[1],data[1]) fmt.Printf("[0]: %#x addr:%#x\n",data[2],data[2]) fmt.Printf("[0]: %#x addr:%#x\n",data[3],data[3]) }

输出

[0]: 0x12 addr:0xc042010248 [1]: 0x34 addr:0xc042010249 [2]: 0x56 addr:0xc04201024a [3]: 0x78 addr:0xc04201024b

也可以使用下面的方式

n := 0x12345678 var data []byte = make([]byte,4) //操作的都是无符号整型 binary.BigEndian.PutUint32(data,uint32(n))

可以使用下面的方式判断当前系统的字节序类型

const INT_SIZE int = int(unsafe.Sizeof(0))

//判断我们系统中的字节序类型 func systemEdian() { var i int = 0x1 bs := (*[INT_SIZE]byte)(unsafe.Pointer(i)) if bs[0] == 0 { fmt.Println("system edian is little endian") } else { fmt.Println("system edian is big endian") } }

go的byte跟string有什么区别

byte是字节型数据,string是字符串型数据,它们的数据类型不同。

一、字符串型。

字符串型的变量,字符码范围为0到255,可以声明变长和定长字符串。

用“String*大小”的语法声明一个定长字符串。在Visual

Basic中,文字字符串要用引号引起来。

二、字节型。

变量包含二进制数时,使用字节型。在转换格式期间,最好用字节型变量存储二进制数。

§除了一元减法外,可以对整数进行处理的运算符均可处理字节型的数据类型。因为字节型是从0到255的无符号类型,所以不能表示负数。

如何将golangbyte转换为字符串

将golangbyte转换为字符串:

package main

import (

"fmt"

)

func main() {

data := [4]byte{0x31, 0x32, 0x33, 0x34}

str := string(data[:])

fmt.Println(str)

}


文章名称:go语言byte go语言byte转int
网页地址:http://scyanting.com/article/dospjig.html