我有以下一段代碼:
const unsigned char *a = (const unsigned char *) input_items;
input_items基本上是一個二進製文件的內容。
現在 a[0] = 7,我想將此值轉換為 unsigned int。但是當我執行以下操作時:
unsigned int b = (unsigned int) a[0];
並打印這兩個值,我得到:
a[0] = 7
b = 55
為什麼 b 也不包含 7?我如何得到 b = 7?
我想我現在看到了問題:您將字符的值打印為字符:
unsigned char a = '7';
std::cout << a << '\n';
要打印的字符 '7'
,用ASCII值55
。
如果你想得到數字字符對應的整數值,你可以依賴所有數字字符必須連續編碼,從零開始到九結束。這意味著您可以'0'
從任何數字字符中減去以獲得其整數值:
unsigned char a = '7';
unsigned int b = a - '0';
現在b
將等於整數值7
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句