有没有比较详细地讲解进制之间关系的视频或者文章
本帖最后由 1613551 于 2022-7-8 11:47 编辑比如8进制前面好像要加上0?16进制前面得加上Ox,Ox的O是必须大写还是什么的?然后'\x2a'是什么意思,\是表示ASCII码的八进制吗?还有1e03这些是什么?小甲鱼好像没有讲过,有相关的视频和文章推荐吗? 本帖最后由 傻眼貓咪 于 2022-7-8 14:28 编辑
整型字面常量(Integer Literal)
...二进制 binary-literal
...八进制 octal-literal
...十进制 decimal-literal
...十六进制 hexadecimal-literal
(一)二进制 binary-literal
前缀:0b
例子:0b00101101(一个字节大小)
(二)八进制 octal-literal
前缀:0
例子:0723
(三)十进制 decimal-literal
前缀:不是 0 开头
例子:107239
(四)十六进制 hexadecimal-literal
前缀:0x
例子:0x1F3E(一个字节大小)
** 以上例子只针对 C/C++ 语言,其它的程序语言有其它的表示法。
'\xabc' 这里的 '\x' 和 abc 是两样不同东西,前者 '\x' 表示十六进制转义序列,后者 abc 是序号。
转义序列
比如:字符 'C'(在 ASCII 编码为 67,十六进制表示 0x43),所以转义序列就是:'\x43',你也可以放进字符串里,如:#include <stdio.h>
int main()
{
char *A = "Fish\x43 hahaha";
printf("%s\n", A);
return 0;
}FishC hahaha
十六进制转义序列,一般用于指定或储存不可输入的字符(如 null '\x00',因为 ASCII 编码里不是所有字符都能打印或输入的)
1e03 是浮点类型字面常量以科学计数法形式呈现。
代码:#include <stdio.h>
int main()
{
float a = 1e03;
float b = 1e3;
printf("%f\n", a);
printf("%f\n", b);
return 0;
}1000.000000
1000.000000
本帖最后由 临时号 于 2022-7-8 12:03 编辑
http://c.biancheng.net/view/1759.html
https://www.jb51.net/article/217870.htm 16进制是零x不是欧x 8进制是0+八进制数
十六进制是 0x(零x),x大小写均可
1e03是科学计数法,x e y即x*(10的y次方)
\开头的字符是8进制数对应字符(ASCII)
\x和\X开头的字符是16进制对应字符(ASCII)
页:
[1]