我有一個電話號碼錶示爲:AA A3 AA A1 A3 A7 A9 A7 A4 A9
,我想將它轉換爲正常數字:0301379749
?將奇怪的十六進制電話號碼轉換爲正常數字
1
A
回答
4
int main()
{
std::string str = "\xAA\xA3\xAA\xA1\xA3\xA7\xA9\xA7\xA4\xA9";
for(unsigned i = 0; i < str.size(); i++)
{
if(str[i] == '\xAA') str[i] = '\x00';
str[i] = (str[i]&'\x0F') + '0';
}
//or
std::for_each(str.begin(), str.end(), [](char &c)
{
if(c == '\xAA') c = '\x00';
c = (c&'\x0F') + '0';
});
cout << str << endl;
return 0;
}
+0
這正是我所期待的 – Merni 2011-04-27 09:15:26
2
您的數字似乎被0xA0偏移,數字「0」表示爲10而不是0(0xA0 + 10 = 0xAA)。
因此,對於每個數字,減去0XA0,再取模10:
const unsigned int digit = (weirdHexValue - 0xA0) % 10;
中借鑑@hidayat一些代碼,下面是如何轉換的例子:
int main()
{
std::string str = "\xAA\xA3\xAA\xA1\xA3\xA7\xA9\xA7\xA4\xA9";
std::for_each(str.begin(), str.end(), [](char &c)
{
c = '0' + (c - 0xA0) % 10;
});
cout << str << endl;
return 0;
}
相關問題
- 1. 將數字轉換爲十六進制
- 2. 奇怪的結果轉換十六進制字符串爲int
- 3. 將十進制轉換爲十六進制和十六進制
- 4. 將字符串轉換爲十六進制到十六進制
- 5. 奇怪的警告將VB.NET轉換爲C# - 十六進制常量
- 6. 將4字節十六進制轉換爲十進制值
- 7. VB.Net - 將多字節十六進制值轉換爲十進制
- 8. 如何將十六進制字符串轉換爲十進制?
- 9. 將十六進制從套接字轉換爲十進制
- 10. awk命令爲十六進制轉換爲符號十進制
- 11. 將十六進制字符串轉換爲無符號十進制值
- 12. 將十六進制數轉換爲十進制格式
- 13. 在Arduino上將整數/十進制轉換爲十六進制?
- 14. 將十進制數轉換爲十六進制
- 15. 轉換爲十六進制?
- 16. 將十六進制轉換爲十進制的方法 - 輸入非十六進制數時程序不正確
- 17. 從十六進制字符串轉換爲十六進制字符數組
- 18. 將十六進制轉換爲二進制,然後轉換爲十進制
- 19. 十進制轉換爲十六進制的轉換(Java)的
- 20. 如何將字母轉換爲數字,同時將十六進制基數轉換爲十進制python 3?
- 21. 將字節數組轉換爲十六進制十進制字符串
- 22. 如何將十六進制字符串轉換爲十六進制?
- 23. 將URL的十六進制數字轉換爲字符串
- 24. 將十六進制值轉換爲ascii
- 25. 將十六進制轉換爲ascii
- 26. 將長轉換爲十六進制
- 27. 將NSString轉換爲十六進制
- 28. 將RGB轉換爲十六進制C++?
- 29. 將十六進制轉換爲BigInteger
- 30. 將十六進制轉換爲IEEE 754
AA(16) = A(16)* 16(10)+ A(16)= 10(10)* 16(10)+10(10)= 170(10)等等。 – 2011-04-27 09:11:39
數字是否保存在內存中?如果是這樣,怎麼樣?它是一個char數組/指針嗎?或者你把它保存在一個文件中?或者你應該在提示中輸入數字? – rzetterberg 2011-04-27 09:12:58