[英]Converting ASCII numerical character to actual character
我正在學習ASCII ,以及它如何編碼字符。 根據我的理解(雖然我可能錯了,因為我還在學習),但是ASCII將數字編碼為字符。 例如,像這樣:
0011 0000 = 30 ='0' (這是一個編碼字符)
0000 0000 = 0 = 0 (這是實際數字)
表示兩種不同類型的零編碼。
data type? 有沒有辦法顯示ASCII 數據類型的真實數字?
我嘗試了以下代碼:
#include <iostream>
int main(void) {
char e = '0';
std::cout << e << std::endl;
std::cout << sizeof(e) << std::endl;
std::cin.get();
std::cin.get();
return 0;
}
我知道這段代碼與我想要完成的結果並不相符; 然而,這是我能想到的。 can be accomplished through C++ syntax. 我需要更好地理解如何通過C ++語法實現這種 。
information or title. 另外,請原諒我有任何信息或標題。 我還在學習編程的“繩索”。
將char
轉換為int
。
std::cout << static_cast<int>(e);
char
實際上已經是一個整數,只是operator<<
take a char
的重載將它顯示為一個字符。 通過使用強制轉換將類型更改為int
,我們將導致調用操作符的不同重載,一個被寫入以顯示為整數的重載。
根據我的理解,您希望存儲在內存中的實際值為'0'= 0x30 = 48。 在內存中, char
數據類型也以整數存儲,但是以8位格式存儲。 因此,如果您使用int鍵入轉換變量,那么您將獲得整數格式的存儲值,而不是Ascii char。
#include <iostream>
int main(void) {
char e = '0';
std::cout << (int)e << std::endl;
std::cout << sizeof(e) << std::endl;
std::cin.get();
std::cin.get();
return 0;
}
像這樣的東西
#include <iostream>
int main(void) {
char e = '0';
std::cout << e - '\0' << std::endl;
std::cout << sizeof(e) << std::endl;
std::cin.get();
std::cin.get();
return 0;
}
試試用char e
等於任何字符,它將打印字符的實際值。 感chris
提出另一種方法; 這是通過將字符轉換為int
。
std::cout << static_cast<int>(e) << std::endl;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.