成人免费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-04-07 11:33:02

Go逃逸分析

2021-07-15 23:18:48

Go語言并發

2023-12-21 07:09:32

Go語言任務

2024-11-05 18:18:48

2016-11-14 17:36:57

Angular 2應用程序端對端

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 | 久久国产精品亚洲 | 亚洲精品色 | 色视频欧美| 一区二区日韩 | 华丽的挑战在线观看 | av网站免费观看 | 成人3d动漫一区二区三区91 | 国产日韩欧美一区 | 亚洲免费视频网站 | 97人澡人人添人人爽欧美 | 久久精品一区二 | 国产91丝袜在线播放 | 日本高清视频在线播放 | 午夜视频在线观看视频 | 日本中文字幕日韩精品免费 | 日韩一区二区福利视频 | 国产成人精品网站 | 蜜桃毛片| 国产在线精品一区 | 午夜在线免费观看 | 一区二区三区在线 | 亚洲精品一区二区网址 | 国产免费又色又爽又黄在线观看 | 农村妇女毛片精品久久久 | 久久久久国产一区二区三区四区 | 亚洲精品视频免费 | 亚洲视频在线看 | 亚洲国产中文在线 | 欧美日韩亚洲二区 | 国产亚洲日本精品 | 国内久久| 国产精品免费观看 | 狠狠干夜夜草 | 欧美一区二区在线播放 | 在线成人av| 久久久久久久av | 全免费a级毛片免费看视频免 | www.中文字幕av | 国产亚洲网站 | 福利视频网址 |