C语言中进制数的表示方法及八进制数表达方式详解
1。用C语言表示二进制数字

十进制。例如20,457;
十六进制,从0x开始。例如,0x7a;
八进制,从0。例如,05,0237;
C语言中没有二进制输入,并且可以实现大多数功能。
二进制:每两个都进入一个;所以只有0/1
八进制系统:每八个进入一个;所以不能有8/9
小数:每十个要去一个;所以只能是0-9
十六进制:每16个要去一个; 0-9+A(10)-f(15)
2。如何表达八分音数字
C/C ++规定,如果一个数字表明其八月,则必须先于0(数字0)。例如,123是十进制,但0123表示八分位。这就是在C和C ++中表达八分音数字的方式。
int Var_DEC = 10;//10
int Var_OCT = 010;//8 八进制,以0开头
int Var_HEX = 0x10;//16 十六进制,以0x开头
printf("Var_DEC=%d, Var_OCT=%d, Var_HEX=%d\n", Var_DEC, Var_OCT, Var_HEX);
char buff5[] = "123456789\cd987654321"; \c:没有实际含义
//单个反斜杠,在字符串中会被当做转义字符处理,若后续没有实际含义,会提示warning: warning: unknown escape sequence '\c',并且不会将\打印出来
char buff5[] = "123456789\1237654321"; \12:换行符
//若后续有实际含义,会将转换后的字符打印出来
char buff5[] = "123456789\\12987654321";
//打印出1个\字符
执行结果:var_dec = 10,var_oct = 8,var_hex = 16
笔记:
1)在八分之一中表达时,您不能错过第一个0。否则,计算机将被视为十进制(然后将挖掘坑)
2)但是,当表达用于表达字符的“逃脱字符”方法时,可以忽略上一个0;
3。避免坑
让我们首先举个例子:
char buff1[] = "abcdef0123456789\0123456789";
printf("buff1=%s\n", buff1);
char buff2[] = "abcdef0123456789\0123456789";
printf("buff2=%s, buff2[6]=%c\n", buff2, buff2[6]);
buff2[6] = '\0';
printf("buff2=%s\n", buff2);
char buff3[] = "abcdef\61\62\63\64\65\66\67\68\69";
char buff4[] = "abcdef\061\062\063\064\065\066\067\068\069";
printf("buff3=%s, buff4=%s\n", buff3, buff4);
理想:插入\ 0字符作为buff1和buff2字符串中的结尾字符;
分析:
1)使用逃生字符'/'加上代表角色的特殊字母的方法,例如:'\ n'表示线路断开,而'\ t'表示tab字符,'\'''''是单语引号;
2)另一种使用逃生字符的方式:逃生字符'\'之后是一个八分音数字,该数字用于表示ASCII代码等于值的字符
3)当使用八十位“逃脱字符”表达方法来表达字符时,可以忽略上一个0;
附件:( ASCII字符由Octal 0xxx表示)