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 ...