二白 发表于 2018-9-25 13:52:40

ascii码 进制转换

本帖最后由 claws0n 于 2018-9-25 17:20 编辑

最后一句话到底是什么意思呀,x y的十进制也不是120 121呀?7与55是怎么样的联系关系呀?默认输入为十进制吗?麻烦了 感谢

RIXO 发表于 2018-9-25 16:23:13

呃,ascii码就是外国人设置的一种编码,因为二进制八位数 数值是0-255,所以就一个数字对应一个字符,做了一个表,把各种英文字符,大小写字母,数字放了进去,这里的意思是x对应表中的120    y对应表中的121   7对应表中的55

RIXO 发表于 2018-9-25 16:26:20

呃,再补充一下,这里的55是十进制的数值       是为了方便理解
二进制表示为00110111

claws0n 发表于 2018-9-25 17:28:19

嗯,楼上正解,是 ascii 码。默认的数字是十进制,0 开头的数字为八进制,0x 开头的为十六进制。输入不管是什么,到内存单元,或者对计算机来说,都是二进制的。转回来十进制是方便表示。

char 是属于 int 家族的整型数据,一个是单一字节,另一个是四个字节而已(普遍上)。当 int a = 67; printf("%c", a); 即使是 int 型,printf() 的输出是 %c,char 型,所以输出的结果是对应 ascii 表的 67 (十进制)的那个元素。

RIXO 发表于 2018-9-25 21:16:21

claws0n 发表于 2018-9-25 17:28
嗯,楼上正解,是 ascii 码。默认的数字是十进制,0 开头的数字为八进制,0x 开头的为十六进制。输入不管是 ...

{:10_333:}怎么总能遇到你,来解下这题
https://fishc.com.cn/thread-122842-1-1.html

无名老张4646 发表于 2018-9-25 21:50:55

既然知道是ASCII码的进制转换,那就应该知道计算机存储时是以二进制进行存储的,十进制是需要进行转换才能被计算机识别,现实生活中的一些字符(123,xyz!@,都是字符),都需要进行转换才能被机器识别。所以才有了ASCII表,所谓的十进制的二进制表示。

claws0n 发表于 2018-9-25 22:53:44

RIXO 发表于 2018-9-25 21:16
怎么总能遇到你,来解下这题
https://fishc.com.cn/thread-122842-1-1.html

对呀,世界好小~{:10_254:} 版主也得赚钱呀,才有钱发放~ 不像哥哥{:9_234:}
回答得不错,我只是加以补充~

那是小学生的题目吗?完全看不懂{:10_250:}
你的呼叫无效,冬雪版主也未必想回吧~

RIXO 发表于 2018-9-25 22:55:56

claws0n 发表于 2018-9-25 22:53
对呀,世界好小~ 版主也得赚钱呀,才有钱发放~ 不像哥哥
回答得不错,我只是加以补 ...

讲真的,我感觉大佬的解法总能给我带来惊喜

hyBegins 发表于 2018-10-3 08:28:10

a在内存中存放120没问题,字符采用ASCII码表示,内码中最高位补0,以1个字节表示,转换成十进制为120.
b在内存中存放55有问题,b是一个整数,在内存里面是用补码表示的,转换过来应该就是7;
要实现存放55的结果,按上文,赋值语句应为:b='7',字符7才是正确结果。(字符7的ASCII码转换成十进制为55)
页: [1]
查看完整版本: ascii码 进制转换