package
0.5.0
Repository: https://github.com/dayueba/minirpc.git
Documentation: pkg.go.dev

# README

Header长度为9个字节,后面8个字节为8个字节的uint64

除了这个,还需要保存此次成功还是失败的 statusType 和 序列化类型 serializeType

  • statusType 有两种状态,只需要一个bit
  • serializeType 有4种类型,需要两个bit

一个字节有8个bit,所以我们可以用一个字节表示,减少存储空间

我们假设 一个byte的最后一个字节为 statusType

  • get:我们只需要获取最后一个字节,忽略前面7个字节,也就是说与 0000 0001(16进制就是 0x01)进行&运算,最后一个字节为0就是0,为1就是1
  • set:先把最后一位清零byte &^ 0x01, 再获取要设置的最后一个bit byte & 0x01, 最后再进行一次|(或)运算

倒数2 3字节为 serializeType

  • get:同理,与 0000 0110(16进制就是 0x06)进行&运算,但是由于设置的是2 3字节,还需要>> 左移1位
  • set:同理,清零倒数2 3字节,获取 2 3字节,获取bit时要先右移