簡體   English   中英

將十六進制的字節轉換為字符字符串

[英]Turn a byte of hex into a char string

當我嘗試將十六進制的一個字節轉換為char字符串時,我發現它需要3個字節。 我正在使用Visual Studio 2013。

如果我少於3個字節,則會收到錯誤消息:“變量'str'周圍的堆棧已損壞。”

我究竟做錯了什么? 確定十六進制值0xF1應該適合char str[1]嗎? 為什么我必須聲明一個3字節的數組來分配1字節的值?

char str[3];
sprintf(str, "%02X", 0xF1);

str的內容是0x0026fd18“ F1”

問題是試圖將“ F1”打印到字符串后跟一個空終止符-這將是三個字節。 這就是sprintf函數的重點-它將輸入格式化為可讀的字符串。 如果您只是嘗試將0xF1的十六進制值分配給char,則可以這樣做:

char str = (char)0xF1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM