C 數字 16進製制字串和位元組之間互轉

2021-08-03 23:45:28 字數 1921 閱讀 9226

乙個位元組包含8個二進位制位,乙個十六進製制可表示4個二進位制位,所以,乙個位元組可以由2個十六進製制表示

總結如下:

(1)乙個byte 對應兩位十六進製制位,而不是八位(32位二進位制位);

(2)轉化為十六進製制之後,不足兩位的,高位要補零。

8位十六進製制數佔多少位元組 比如0x12345678這是多少位元組?

一位十六進製制代表四位二進位制,0x12345678轉換成二進位制就是0001-0010-0011-0100-0101-0110-0111- 1000而沒八位二進位制占乙個位元組,所以你 8位十六進製制數佔4位元組

16進製制中,兩個字元是乙個位元組,乙個字元的話,是乙個位元組。

例如:a是乙個位元組,aa是乙個位元組,aaa是兩個位元組,aaaa是兩個位元組。

不過,16進製制能夠出現的字元(不區分大小寫)是:1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f

6e69 占用 兩個位元組

int num=12345;

byte bytes=bitconverter.getbytes(num);//將int32轉換為位元組陣列

num=bitconverter.toint32(bytes,0);//將位元組陣列內容再轉成int32型別

private

string

stringtohexstring(string s, encoding encode)

return result;

}

如:

///注意,乙個中文轉為utf-8佔三個位元組,英文佔乙個位元組

system.console

.writeline(stringtohexstring("中華人民共和國",

system.text

.encoding

.utf8));

或使用

bitconverter.tostring(encoding.utf8.getbytes("中華人民共和國"))
返回結果為xx-xx-xx

然後再去掉」-「

private

string

hexstringtostring(string hs, encoding encode)

//按照指定編碼將位元組陣列變為字串

return encode.getstring(b);

}

如:

string hexstring= stringtohexstring("中華人民共和國", system.text

.encoding

.utf8);

string content=hexstringtostring(hexstring, system.text

.encoding

.utf8)

public

static

string

bytetohexstr(byte bytes)

}return returnstr;

}

tostring("x2")為c#中的字串格式控制符

x為 十六進製制

2為 每次都是兩位數

比如 0x0a ,若沒有2,就只會輸出0xa

假設有兩個數10和26,正常情況十六進製制顯示0xa、0x1a,這樣看起來不整齊,為了好看,可以指定」x2」,這樣顯示出來就是:0x0a、0x1a

private

static

byte strtotohexbyte(string hexstring)

C 數字 16進製制字串和位元組之間互轉

1 數字和位元組之間互轉 int num 12345 byte bytes bitconverter.getbytes num 將int32轉換為位元組陣列 num bitconverter.toint32 bytes,0 將位元組陣列內容再轉成int32型別 2 將字串轉為16進製制字元,允許中文...

字串轉16進製制數字

網上關於字串轉數字的資料比較散亂,說什麼的都有,為了方便自己記憶在這裡記錄一下。標準c方法 char strhex 0xff long lvalue strtol strhex,null,16 類似的還有strtod 將字串轉換成浮點數 strtoul 將字串轉換成無符號長整型數 如果不要求必須轉為...

16進製制字串轉換為位元組

最近在專案中遇到乙個小問題,記錄下來以備後用。語句 string str1 2a byte b1 convert.tobyte strmd51 錯誤資訊 輸入字串的格式不正確。解決方式 byte b1 convert.tobyte strmd51,16 函式解釋 摘要 將指定基數的數字的 syste...