go語言中int和byte轉換方式

2022-09-24 14:48:20 字數 1139 閱讀 2963

主機位元組序

主機位元組序模式有兩種,大端資料模式和小端資料模式,在網路程式設計中應注意這兩者的區別,以保證資料處理的正確性;例如網路的資料是以大端資料模式進行互動,而我們的主機大多數以小端模式處理,如果不轉換,資料會混亂 參考 ;一般來說,兩個主機在網路通訊需要經過如下轉換過程:主機位元組序 —> 網路位元組序 -> 主機位元組序

大端小端區別

大端模式:big-endian就是高位位元組排放在記憶體的低位址端,低位位元組排放在記憶體的高位址端

低位址 --------------------> 高位址

高位位元組                     地位位元組

小端模式:little-endian就是低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端

低位址 --------------------> 高位址

低位位元組                     高位位元組

什麼是高位位元組和低位位元組

例如在32位系統中,357轉換成二級制為:00000000 00000000 00000001 01100101,其中

00000001 | 01100101

高位位元組     低位位元組

int和byte轉換

在go語言中,b其實是uint8的別名,byte 和 uint8 之間可以直接進行互轉。目前來只能將0~255範圍的int轉成byte。因為超出這個範圍,go在轉換的時候,就會把多出來資料扔掉;如果需要將int32轉成byte型別,我們只需要乙個長度為4的byte陣列就可以了

大端模式下

func f2()

小端模式下

// 在上面我們講過,小端剛好和大端相反的,所以在轉成小端模式的時候,只要將byte陣列的下標首尾對換一下位置就可以了

func f3()

go轉換demo

//整形轉換成位元組

func inttobytes(n int) byte )

binary.write(bytesbuffer, binary.bigendi程式設計客棧an, x)

return bytesbuffer.bytes()

}//位元組轉換成整形

func bytestoint(b byte) int

總結本文標題: go語言中int和byte轉換方式

本文位址:

go語言中int和byte轉換

主機位元組序模式有兩種,大端資料模式和小端資料模式,在網路程式設計中應注意這兩者的區別,以保證資料處理的正確性 例如網路的資料是以大端資料模式進行互動,而我們的主機大多數以小端模式處理,如果不轉換,資料會混亂 參考 一般來說,兩個主機在網路通訊需要經過如下轉換過程 主機位元組序 網路位元組序 主機位...

int和byte 陣列轉換

雖然天天寫程式,牽涉到最基本的整型轉位元組陣列竟然,完全沒有頭緒了。所幸有萬能的網路幫忙回憶。要進行轉換首先要回憶起這幾個概念。1.不管數字以什麼進製表現在我的眼前,在計算機裡都是以二進位制傳輸和儲存的。2.byte就是8個bit,byte就是很多個連續的byte 那麼怎麼把乙個int放到byte裡...

Go語言中byte型別和rune型別(五)

go語言中字串需要使用用雙引號,而單引號用來表示單個的字元,字元也是組成字串的元素。go語言的字元有兩種 uint8型別,或者叫 byte 型,代表了ascii碼的乙個字元。rune型別,代表乙個utf 8字元。ascii編碼是1個位元組,而utf 8是可變長的編碼,當要表示中文等非ascll編碼的...