C 中如何表示2進製,8進製 16進製制變數

2021-07-03 02:37:01 字數 1648 閱讀 8990

1、c和c++都沒有提供二進位制數的表達方法。

2、c,c++語言中,如何表達乙個八進位制數呢

如果這個數是 876,我們可以斷定它不是八進位制數,因為八進位制數中不可能出7以上的阿拉伯數字。但如果這個數是123、是567,或12345670,那麼它是八進位制數還是10進製數,都有可能。

所以,c,c++規定,乙個數如果要指明它採用八進位制,必須在它前面加上乙個0,如:123是十進位制,但0123則表示採用八進位制。

int 0123;

這就是八進位制數在c、c++中的表達方法。但是有乙個例外就是轉意符'\'。

因為c,c++規定不允許使用斜槓加10進製數來表示字元,所以 :

'?' //ascii值是63

'\077' //是8進製表示'?',0可以省略,因為c,c++規定不允許使用斜槓加10進製數來表示字元

'\0x3f' //是16進製表示'?'

3、 c,c++規定,16進製制數必須以 0x開頭

int 0x15a

其中的x也也不區分大小寫。(注意:0x中的0是數字0,而不是字母o)。

注:1) 8進製和16進製制只能用達無符號的正整數,如果你在**中里:-078,或者寫:-0xf2,c,c++並不把它當成乙個負數。

2) qt中把十進位制整型值轉換成16進製制 的字串方法。

int a = 63;

qstring s = qstring::number(a, 16);                   // s == "3f"

qstring t = qstring::number(a, 16).toupper();     // t == "3f"

3) qstring 儲存16進製制值

//將字串以16進製制形式輸出

qstring cmd = 0x0a;  

qdebug() <

4)qstring 按照字串表面格式 轉換成16進製制

cpp**  

qstring str = "ff";  

bool ok;  

int hex = str.toint(&ok, 16);       // hex == 255, ok == true 0xff

int dec = str.toint(&ok, 10);       // dec == 0, ok == false

4) qbytearray 儲存16進製制值 

cpp**  

static

const

char mydata = ;  

qbytearray bd = qbytearray::fromrawdata(mydata, sizeof(mydata));  

qdebug() <

/輸出16進製制值

5) qchar 儲存16進製制值,列印

cpp**  

qchar c = 0x0a;  

qbytearray array;  

qdebug() <

6)char* 儲存16進製制,列印

cpp**  

char c = ;  

qbytearray array(c);  

qdebug() <

**:

C 中如何表示2進製,8進製 16進製制變數

1 c和c 都沒有提供二進位制數的表達方法。2 c,c 語言中,如何表達乙個八進位制數呢?如果這個數是 876,我們可以斷定它不是八進位制數,因為八進位制數中不可能出7以上的阿拉伯數字。但如果這個數是123 是567,或12345670,那麼它是八進位制數還是10進製數,都有可能。int 0123 ...

C 轉為2進製 8進製 16進製制

include include define n 8 void tobin int n,int dec void tobin2 int n,int dec intmain 看乙個例子 6轉2進製 6 2 0 6 2 3 非0 可以繼續算 3 2 1 3 2 1 非0 可以繼續算 1 2 1 1 2 ...

C 中中的2進製,8進製 16進製制變數

1 c和c 都沒有提供二進位制數的表達方法。2 c,c 語言中,如何表達乙個八進位制數呢?int 0123 這就是八進位制數在c c 中的表達方法。但是有乙個例外就是轉意符 因為c,c 規定不允許使用斜槓加10進製數來表示字元,所以 ascii值是63 077 是8進製表示 0可以省略,因為c,c ...