成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

快速了解 “小字端” 和 “大字端” 及 Go 語言中的使用

開發 后端
對于數字 573785173 用十六進制表示為 0x22334455 。如何轉化的,本篇不需要搞清楚,但如果你不懂就最好了解下。

[[443198]]

 “大字端” 和 “小字端” 表示的是數據存儲時的順序區別,例如:

對于數字 573785173 用十六進制表示為 0x22334455 。如何轉化的,本篇不需要搞清楚,但如果你不懂就最好了解下。

對于 0x22334455 ,左邊是高位,右邊是低位,這和我們平常表示數字是一樣的,例如:十二(12),1 就是高位(十位),2 就是低位(個位)。

那么給這種,從左到右,由高位到低位的表示方法就稱為 “大字端”。

相反,從左到右,由低位到高位的表示方法就稱為 “小字端”。

在計算機存儲數據時,是以字節為單位去存儲,因此把 0x22334455 拆分:

  • 大字端:0x22 0x33 0x44 0x55
  • 小字端:0x55 0x44 0x33 0x22

為啥出現兩種

因為不同的使用場景下,效率是不一樣。

大字端

例如,對于網絡傳輸,使用的就是大字端。為什么?

因為,早年設備的緩存很小,先接收高字節能快速的判斷報文信息:包長度(需要準備多大緩存)、地址范圍(IP地址是從前到后匹配的)。

在性能不是很好的設備上,高字節在先確實是會更快一些。

小字端

例如,對于一個加法器,選擇的是小字端。為什么?

因為,加法是從低位到高位開始加,一旦有進位,就直接送到下一位,設計就很簡單。

Go 語言中應用

使用 Go 語言中 binary 這個標準包,該包實現了數字與字節之間的轉化。

下來我們將數字 0x22334455 轉化為大字端字節存儲。

  1. buffer := new(bytes.Buffer) 
  2. binary.Write(buffer, binary.BigEndian, int32(0x22334455)) 
  • binary.BigEndian 常量,表示大字端。

將數字 0x22334455 轉化為小字端字節存儲。

  1. buffer := new(bytes.Buffer) 
  2. binary.Write(buffer, binary.LittleEndian, int32(0x22334455)) 
  • binary.LittleEndian 常量,表示小字端。

完整例子(僅展示大字端):

  1. package main 
  2.  
  3. import ( 
  4.    "bytes" 
  5.    "encoding/binary" 
  6.    "fmt" 
  7.  
  8. func main() { 
  9.    buffer := new(bytes.Buffer) 
  10.    err := binary.Write(buffer, binary.BigEndian, int32(0x22334455)) 
  11.    if err != nil { 
  12.       panic(err) 
  13.    } 
  14.  
  15.    var num int32 
  16.    err = binary.Read(buffer,binary.BigEndian, &num) 
  17.    if err != nil { 
  18.       panic(err) 
  19.    } 
  20.  
  21.    fmt.Println(num) 
  22.  
  • binary.Write 寫入 buffer 變量。
  • binary.Read 從 buffer 變量讀取。
  • int32(0x22334455) 必須使用固定長度,比如 int 類型就不可以,支持類型如下圖:

再補充一個類型 []byte,它等價于 []uint8 類型。

參考

官方:https://pkg.go.dev/encoding/binary

本文轉載自微信公眾號「 瀟灑哥和黑大帥」,可以通過以下二維碼關注。轉載本文請聯系 瀟灑哥和黑大帥公眾號。

 

責任編輯:武曉燕 來源: 瀟灑哥和黑大帥
相關推薦

2025-03-20 07:01:40

2025-03-28 07:50:00

端到端測試Go語言

2023-10-09 07:14:42

panicGo語言

2024-05-10 08:36:40

Go語言對象

2012-06-15 09:56:40

2023-12-30 18:35:37

Go識別應用程序

2023-11-21 15:46:13

Go內存泄漏

2024-04-01 00:02:56

Go語言代碼

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2014-04-09 09:32:24

Go并發

2021-05-07 15:28:03

Kafka客戶端Sarama

2024-11-05 18:18:48

2016-11-14 17:36:57

Angular 2應用程序端對端

2024-04-07 11:33:02

Go逃逸分析

2021-07-15 23:18:48

Go語言并發

2023-12-21 07:09:32

Go語言任務

2013-06-25 09:52:32

GoGo語言Go編程

2023-11-30 08:09:02

Go語言

2022-07-19 12:25:29

Go

2023-07-29 15:03:29

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品一区二 | 久久伊人青青草 | 欧美日韩不卡合集视频 | www.久久影视 | 欧美日韩国产精品激情在线播放 | 亚洲午夜精品 | 日韩精品福利 | 亚洲欧美在线观看 | 久久精品国产一区 | a毛片| 久久久久久国产精品免费免费狐狸 | 久久国产高清 | 国产乱码精品一区二三赶尸艳谈 | 99re6在线视频精品免费 | 夜夜精品浪潮av一区二区三区 | 国产综合精品一区二区三区 | 久久一区精品 | 亚洲成年人免费网站 | 日韩一二三 | 国产精品久久久久久 | 欧美性吧 | 亚洲精品一区二区 | 91视频大全 | 日韩在线免费观看视频 | 国产99久久精品一区二区永久免费 | 久久久91 | 国产在线一级片 | 黑人成人网 | 在线观看日本高清二区 | 一区二区国产在线 | 国产精品一区二区免费看 | 欧美一区二区三区 | 天天综合操 | 成人网视频 | 特黄小视频 | 免费看日韩视频 | www.成人久久 | 嫩草视频在线免费观看 | 久草中文在线 | 国产精品国产三级国产aⅴ浪潮 | 精品视频一区二区三区在线观看 |