对下面的例子我有个疑问
int a
a = '48'
printf("%c",a);
printf("%d",a);
为什么第一个打印出来8,第二个打印出13368?
我知道这种方式不合法,但我想知道这两个数怎么来的?
c语言char和int的转换问题
答案:2 悬赏:10 手机版
解决时间 2021-03-22 14:22
- 提问者网友:最美的风景
- 2021-03-21 20:44
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-03-21 21:48
a是一个四字节整数,对a赋值为'48'相当于对a的最后一个字节赋值为‘8’=56,倒数第二个字节赋值为‘4’=52.因此a=52*256+56=13368,printf("%c",a);相当于printf("%c",char(a%256));
全部回答
- 1楼网友:山河有幸埋战骨
- 2021-03-21 22:14
unsigned char 无符号的char类型,不会为负的,是0-255之间的值
(unsigned char)(0-100); = 156,这不是一个有效的ascii码值呀,应该什么也打印不出来的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯