嗯,我一直在試圖將這個整數轉換爲十六進制,並已成功完成,但我需要使用此十六進制設置的東西。現在,我需要使用char而不是char數組。沒有其他工作沒有手動設置。也許問題在於我使用sprintf轉換爲十六進制的問題,但無論哪種方式,我確信有一種方法可以完成此任務。現在我需要改變的是輸出是char z,但我還沒有找到一種方法來使這個工作。任何幫助是極大的讚賞。謝謝C/C++整數到十六進制字符數組到字符
編輯:現在thi代碼可能沒有直接意義,因爲它是不完整的,我看到沒有目的輸入不相關的代碼。 int x永遠不會超過100,整個點就是將它轉換成一個十六進制,並將它寫入我擁有的設置的內存中。所以我一直想弄清楚如何將整數轉換爲十六進制字符。有人指出,即使sprintf將它轉換爲存儲在字符串中的字符串,正如我剛纔注意到的那樣。但我需要將int轉換爲十六進制,並將其分配給一個char變量,以備後用。這就是我被卡住的地方。我不知道以一種格式和方式完整地完成所有這些事情的最佳方式,而不會涉及到字符串和其他內容。
VOID WriteSetting(int x)
{
char output[8];
sprintf(output, "0x%X", x);
char z = 0x46
unsigned char y = z
}
工作代碼:
VOID WriteSetting(int x)
{
unsigned char y = (unsigned char)x;
Settingdb.Subset.Set = y;
}
我不明白這一點。轉換,char數組,char,int ...都是什麼? – 2013-06-06 05:55:27
'0x46'和''0x46''之間有很大的區別' –
使用sprintf時要非常小心,輸出緩衝區只有4個字符長,所以如果x在255以上,你會遇到麻煩。一點弦理論也許在這裏不會有問題。如果你使用C++查看std :: string,它將解決很多問題。 – Cramer