C语言/C++中怎么表示8进制数或者16进制数?(8进制数用数字0开头,16进制数用0x或者0X开头)
在C語言里,整數有三種表示形式:十進制,八進制,十六進制。
其中以數字0開頭,由0到7組成的數是八進制。
以0X或0x(0x中是數字0,不是大寫字母O)開頭,由0-9,A-F或a~f 組成是十六進制。
除表示正負的符號外,以1-9開頭,由0-9組成是十進制。
1.十進制:除表示正負的符號外,以數字1~9開頭,由數字0到9組成組成。如,128,+234,-278。
2,八進制:以0開頭,由0~7組成的數。如,0126,050000.
3,十六進制:以0X或0x開頭,由0-9,A-F或a~f 組成。如,0x12A,0x5a000.
編程語言通常規定是以0(數字0)開頭的數字是八進制數,以0x開頭的數字是十六進制數,其余的就是十進制數,“十進制是D表示 二進制是B 十六進制是H”在編寫程序時是不能用的,那只是為了方便,書寫時(不是在計算機上編程時)用到的(只對于C語言編程,匯編語言編程時,是寫上的),假如程序 int x=011中,x是用八進制表示的一個數字,它是9,后面的printf("%d\n",++x);是以10進制形式打印結果(%d的作用),所以程序運行的結果是9。
小例子:
#include
using namespace std;
int main()
{
int a,b,c,d,e;
a=0644;
// b=O644; //[Error] ‘O644’ was not declared in this scope ,是數字0,不是字母O
// c=Ox10; //[Error] ‘Ox10’ was not declared in this scope
d=0x10;
e=0X20;
cout<<a<<" “<<b<<” “<<c<<” “<<d<<” "<<e<<endl;
}
運行結果:
可見,cout是默認輸出10進制數字。(從b=53,還說明變量不初始化,則該變量的值是隨機的,不一定是0)
由于十進制數以1-9開頭,8進制數以0開頭,所以可以區別開。
當程序中,設置內存權限位時,就用到八進制數字。
(例如:shm_flg = IPC_CREAT | 0644;//設置共享內存讀寫權限
表示:-rw-r–r-- (644) 只有擁有者有讀寫權限;而屬組用戶和其他用戶只有讀權限 )
參考來源:https://zhidao.baidu.com/question/535989938.html?qbl=relate_question_2&word=C%D3%EF%D1%D4%D6%D0%2C%D4%F5%C3%B4%B1%ED%CA%BE%D2%BB%B8%F68%BD%F8%D6%C6%CA%FD%D7%D6
總結
以上是生活随笔為你收集整理的C语言/C++中怎么表示8进制数或者16进制数?(8进制数用数字0开头,16进制数用0x或者0X开头)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 标号的类型是near还是far有什么区别
- 下一篇: linux与window中sleep函数