簡體   English   中英

將ASCII數字字符轉換為實際字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM