[英]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.