go binary 实现简单的序列化和反序列化

本文介绍了Go语言中关于大端序和小端序的概念,并通过示例说明了小端序在计算机处理中的优势。接着,文章探讨了序列化和反序列化的实现,为读者提供了相关理解。
摘要由CSDN通过智能技术生成

一,go的大端序和小端序

先看一个简单的例子,在计算机中是有大端序和小端序之分的,大端序就是大家正常的阅读习惯,比如 "今天你吃了吗",而小端序是计算机喜欢的阅读习惯比如刚才那句话,计算机用小端序就是 "吗了吃你天今"。

package main

import (
	"encoding/binary"
	"fmt"
)

//大端序和小端序
func main() {
	u := uint32(0x01020304)
	fmt.Println(u)
	arr := make([]byte, 4)
	// 大端序
	binary.BigEndian.PutUint32(arr, u)
	fmt.Printf("大端序排列:%v", arr)
	// 小端序
	binary.LittleEndian.PutUint32(arr, u)
	fmt.Printf("小端序排列:%v", arr)
}

小端序的好处就是计算机处理的更快,当然坏处就是人看起来难受,所以计算机底层的核心逻辑以外,大部分还是选择了大端序,毕竟这样排bug更方便一些。

二,序列化与反序列化实现

package main

import (
	"encoding/binary"
	"fmt"
	"go/types"
	"unsafe"
)

type demoStruct struct {
	Code           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值