首页
论坛
课程
招聘
[求助]关于ASCII码的一些小疑虑
2013-10-20 00:07 18567

[求助]关于ASCII码的一些小疑虑

2013-10-20 00:07
18567
在《C++反汇编》这本书里面说到:“整型可以与字符型互相转换,但整数不可以超过ASCII的最大表示范围,因为多余部分将被舍弃”
这里的舍弃是什么意思?是相当于二进制中的右移,还是直接%256。我在DEV C++曾经碰到过这样的问题,使用效果貌似是后者。。。那这个是编译器自己的特别设定,还是一般情况下直接报错。

[公告] 欢迎大家踊跃尝试高研班11月试题,挑战自己的极限!

收藏
点赞0
打赏
分享
最新回复 (6)
雪    币: 199
活跃值: 活跃值 (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
ganboing 活跃值 1 2013-10-20 00:10
2
0
记得回答过你的问题,其实这个问题就是c中不同整数类型互相转换的问题,具体直接查一下相关书籍。
雪    币: 105
活跃值: 活跃值 (27)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
toofunny 活跃值 1 2013-10-20 01:48
3
0
舍弃就是 11111111 11111111 11111111 00000000 变成 00000000
雪    币: 14
活跃值: 活跃值 (63)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
乐乐侠 活跃值 2013-10-20 08:16
4
0
舍高位,存低位,好像是这样,要看类型存储的空间
雪    币: 180
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
会飞西瓜 活跃值 2013-10-20 10:55
5
0
恩,不过你回答的是另外一个问题,关于常数的问题。。。查阅相关书籍= =。。。去看编译原理么
雪    币: 199
活跃值: 活跃值 (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
ganboing 活跃值 1 2013-10-20 14:23
6
0
其实你自己动手写几个例子,调试一下,不难发现长整形转短整形是直接截断,因为char本身也是整形,至于为什么直接截断还可以给出正确的结果,看整数的表示法2's complement

然后不妨思考当整数在什么范围内的时候,unsigned int转unsigned char能够给出正确的结果,不难发现是0-255,因为高位是0,直接截断不会有影响
雪    币: 96
活跃值: 活跃值 (29)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
啤酒肚 活跃值 2013-10-20 16:34
7
0
整型转换成字符字符的范围就是ascii码,所以整型不能超过ascii码,否则没有字符与它对应了。
游客
登录 | 注册 方可回帖
返回