1613551 发表于 2022-7-8 11:46:24

有没有比较详细地讲解进制之间关系的视频或者文章

本帖最后由 1613551 于 2022-7-8 11:47 编辑

比如8进制前面好像要加上0?16进制前面得加上Ox,Ox的O是必须大写还是什么的?然后'\x2a'是什么意思,\是表示ASCII码的八进制吗?还有1e03这些是什么?小甲鱼好像没有讲过,有相关的视频和文章推荐吗?

傻眼貓咪 发表于 2022-7-8 11:46:25

本帖最后由 傻眼貓咪 于 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:00:51

本帖最后由 临时号 于 2022-7-8 12:03 编辑

http://c.biancheng.net/view/1759.html
https://www.jb51.net/article/217870.htm

wp231957 发表于 2022-7-8 12:04:30

16进制是零x不是欧x   

ExiaGN001 发表于 2022-7-8 14:44:52

8进制是0+八进制数

十六进制是 0x(零x),x大小写均可

1e03是科学计数法,x e y即x*(10的y次方)

\开头的字符是8进制数对应字符(ASCII)

\x和\X开头的字符是16进制对应字符(ASCII)

lypkingcn 发表于 2022-7-8 20:21:46

页: [1]
查看完整版本: 有没有比较详细地讲解进制之间关系的视频或者文章