珠玉琳琅 发表于 2021-8-25 20:04:57

关于ASCII字符集和进制的问题

putchar('\101');输出的是A,但是ASCII字符集里的A对应的是65,我算了一下,如果101按八进制转换的话是65,但是为什么这个要按八进制转换呢?为什么不是二进制或别的?
下面是我搜到的资料:
计算机指令都是由0和1代码执行的
由于指令太长如有16位、64位,128位等例如;011111110101111
太长了,表示和阅读不方便,所以用八进制表示,0-7
常用还有十六进制0-15位表示,如1111 1010 1100 0111
这是为了表示阅读方便
如果是计算机硬件设置为八进制,每次读取八位 如1100 1011 电子硬件决定的
有8位机子 16位机子 32位机 64位机 128位机子等
位(bit) 在计算机内部,数据的运算采用的是二进制数。在计算机中数据的最小单位是位,位是指一位二进制数,英文名称是bit。一位二进制数只能表示两种状态0或1。
字节(Byte) 8个二进制位构成1个字节。1个字节可以储存1个英文字母或半个汉字。字节是是存储空间的基本计量单位。如计算机的内存和磁盘的容量等都是以字节为单位表示的。除用字节为单位表示存储空间的容量外,还可以用千字节(KB)、兆字节(MB)及吉字节(GB)等表示。
1KB=1204B 1MB=1024KB 1GB=1024M


但没看明白{:10_266:}

tt000 发表于 2021-8-25 21:28:55

转义字符中\ddd是1~3位八进制数所代表的字符,\xdd是1~2位十六进制数所代表的字符,这里d是一个整数的意思
比如:\101里101是八进制数也就是十进制的65,\x41里41是十六进制数也就是十进制的65,\41里的41是八进制数也就是十进制的33会打出一个感叹号,\ddd中的ddd可以是三位数字也可以是一位或者两位总之是八进制数,\xdd里x不能更改,dd是1~2位的十六进制数

珠玉琳琅 发表于 2021-8-26 15:08:05

tt000 发表于 2021-8-25 21:28
转义字符中\ddd是1~3位八进制数所代表的字符,\xdd是1~2位十六进制数所代表的字符,这里d是一个整数的意思
...

哦哦,明白了{:10_297:}谢谢
页: [1]
查看完整版本: 关于ASCII字符集和进制的问题