有符號整數的記錄方法,就是把uint取反(按位非)之後,再加1

下面用一段golang來驗證:

package main

import "fmt"

func main() {
	var a int64
	a = -2
	b := WriteS64(a)

	PrintBytes(b)
}
func PrintBytes(b []byte) {
	fmt.Print("[ ")
	for i := 0; i < len(b); i++ {
		fmt.Printf("%8b ", b[i])
	}
	fmt.Print("]\n")
}
func WriteU64(v uint64) []byte {
	buf := make([]byte, 8)
	for i := range buf {
		buf[i] = byte(v >> uint((7-i)*8))
	}
	return buf
}
func WriteS64(v int64) []byte {
	return WriteU64(uint64(v))
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章