C语⾔C++中怎么表⽰8进制数或者16进制数?(8进制数⽤数字0开头,16进制
数⽤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) 只有拥有者有读写权限;⽽属组⽤户和其他⽤户只有读权限 )

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。