我有一個程序,包括這一行:如何將一個ASCII字符轉換爲C++中的十六進制字符?
int xoredValue = (x^0x41);
其中x是我用它和十六進制代碼的二進制形式進行XOR一個int。 0x41是爲了表示一個ASCII字母。而不是使用0x41,我想做它
char a = 'a';
int xoredValue = (x^<hex of a>);
我一直想弄清楚如何一段時間,它是油炸我的麪條。任何幫助?
我有一個程序,包括這一行:如何將一個ASCII字符轉換爲C++中的十六進制字符?
int xoredValue = (x^0x41);
其中x是我用它和十六進制代碼的二進制形式進行XOR一個int。 0x41是爲了表示一個ASCII字母。而不是使用0x41,我想做它
char a = 'a';
int xoredValue = (x^<hex of a>);
我一直想弄清楚如何一段時間,它是油炸我的麪條。任何幫助?
你沒有。
一個數字是一個數字是一個數字。
0x41
是一個數字,與65
一樣,(與直覺相反)'A'
。無論是十六進制還是十進制還是八進制,都與XOR運算符的運行完全無關,該運算符可用於號碼。
您的特定號碼被稱爲a
(因爲這是您存儲變量的名稱)。
所以,只寫x^a
。
我希望那裏有一個重言式的旗幟。 +1缺少它。 – Columbo
是的,我知道,我之所以提到char a ='a'的原因是因爲我使用了一個傳入的數組,因爲我無法弄清楚什麼是錯的。我沒有意識到,我使用十六進制'A'而不是'一個'之前是一個很大的問題 –
那麼你顯然不知道大聲笑 –
您應該可以只做'x^a' – Justin
表示法不影響行爲。 'x&0x41'等價於'x&a'。請注意,字符「0x41」是「A」而不是「a」。 'A','0x41'和'65'都是相同的值。 –
哦,哇,謝謝!它工作大聲笑 –