标签:字符串 Go语言 必须 const else 定义 func int 代码
大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据现在用代码测试一下go语言是小端模式还是大端模式。
package main
import (
"fmt"
"unsafe"
)
func main(){
var i int = 0x12345678 //定义数据
const size int=int(unsafe.Sizeof(i)) //获取i的长度,
ps:=(*[size]byte)(unsafe.Pointer(&i)) //此处size必须为const类型,不然会报错
fmt.Printf("%T\n",ps) //*[8]byte类型
fmt.Println(*ps)//打印值
//打印存储地址
fmt.Println(&ps[0])
fmt.Println(&ps[1])
fmt.Println(&ps[2])
fmt.Println(&ps[3])
if ps[0] == 0x78 {
//小端模式则ps[0]低位存放的是低字节0x78,十进制则为120, 满足低位存放低字节, 存储为 0x78563412不利用阅读,但方便计算机进行运算。
fmt.Println("系统为小端模式")
} else {
//大端模式则ps[0]低位存放的是高字节12,十进制为18,满足低位存放高字节,存储为ox12345678,方便阅读,但不方便计算机进行运算
fmt.Println("系统为大端模式")
}
}
运行结果:
*[8]uint8
[120 86 52 18 0 0 0 0]
0xc00000a0f8
0xc00000a0f9
0xc00000a0fa
0xc00000a0fb
系统为小端模式
总结:
go语言底层实现的为小端模式,因为计算机进行计算时,都是从低位开始进行计算的,这样计算效率比较高。
而大端模式比较方便用户阅读,比较符合我们的阅读习惯。
标签:字符串 Go语言 必须 const else 定义 func int 代码
原文地址:https://blog.51cto.com/4075704/2521880