2017-04-23 214 views
0

一個無符號整數如何使用uint8_t和初始化變量如何初始化uint8_t

#include<iostream> 
using namespace std; 
int main() 
{ 
    uint8_t a = 6; 
    cout << a; 
    return 1; 
} 

在打印一些符號

+0

[爲什麼性病的可能重複::(我)ostream的治療無/有符號字符作爲文本,而不是一個整數?](http://stackoverflow.com/questions/36843616/why-stdiostream-treat-signed-unsigned-char-as-a-text-and-not-an-integer) – InternetAussie

+1

uint8_t只是一個無符號的字符,所以它打印爲字符,'static_cast'它打印時uint16_t如果你想看到一個數字istead of符號 – kreuzerkrieg

回答

3

C++把uint8_tchar - 因爲這幾乎是它是什麼。

如果傳遞一個charcout,它會打印爲char,其中,有6個值,是ACK標誌(這可能會顯示奇怪的是,這取決於你的終端設置)。

如果你希望它被打印爲一個數字,它轉換成一unsignedcout應該做的伎倆:

cout << (unsigned)a; 
-1

你可以用好老型不安全printf

#include <cstdint> 
#include <cstdio> 

int main() 
{ 
    std::uint8_t a = 6; 
    std::printf("%d\n", a); 
} 
0

,就可以把變量一個以打印爲一個數字,而不是一個ASCII符號

#include<iostream> 
#include <cstdint> 

int main() 
{ 
    uint8_t a = 6; 
    std::cout << "a: " << a << std::endl; 
    std::cout << "a casted to char(is the same type actually): " << char(a) << std::endl; 
    std::cout << "a casted to int: " << int(a) << std::endl; 

    getchar(); 
    return 0; 
}