package main
import (
"fmt"
"unsafe"
)
// 大端与小端的简单实现
func main() {
var x int = 0x12345678 //定义一个int类型的数据
const size int = int(unsafe.Sizeof(x)) //获取x的长度存到常量size中
tmp := (*[size]byte)(unsafe.Pointer(&x)) //tmp为*[]byte类型,此处size必须是const
fmt.Printf("%T\n", tmp) //打印类型=>>*[8]uint8
fmt.Println(*tmp) //打印值=>>[120 86 52 18 0 0 0 0]
//打印存储地址
fmt.Println(&tmp[0]) //=>>0xc0000ac008
fmt.Println(&tmp[1]) //=>>0xc0000ac009
fmt.Println(&tmp[2]) //=>>0xc0000ac00a
fmt.Println(&tmp[3]) //=>>0xc0000ac00b
//判断本机是大端还是小端模式
if tmp[0] == 0x78 {
//tmp[0]如果存放的是0x78,就是数据低位放于内存低位,属于小端模式
fmt.Println("MacOS是小端模式")
} else {
fmt.Println("MacOS是大端模式")
}
}
大端与小端
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明来自叫啥名好 !
评论
评论
Почувствуй себя настоящим пин-ап
cassino brasil [url=pinupcasinojenzolo.com]pinupcasinojenzolo.com[/url].