关于字符型变量和整形变量相互转换的问题

        程序要求:用getchar()函数读入两个字符给c1,c2,然后分别用putchar()函数和printf()函数输出这两个字符。

        在这个程序中,c1、c2无论是定义成字符型或者是整型都可以实现程序正确运行。说明在计算机内部,可以实现字符型变量和整型变量的正确转换,一切都是根据ASCII码表进行的。

        但是如果是需要输出c1、c2的ASCII码,我们只能用printf()函数,而putchar()只能实现单个字符的输出;相比之下,在printf()函数中只要定义正确,可以输出任意类型的变量值。可以说,在一般程序中,printf()函数的应用也因此更加广泛。

        在正常8位计算机中,我们可以实现字符型变量和整型变量在0-255以内对应ASCII码表的正确转换,如果整型变量超出255,则进行X-255的ASCII码表转换,其他情况可以以此类推。然而在我们使用的虚拟机中,我们只能进行7位以内的计算,也就是说,我们只能实现在0-127的ASCII码表的正确转换,除此之外的128-255一般情况下会输出乱码,超过255之后,进行X-255的ASCII码表转换,之后以此类推。

        即在我们正常编写程序的时候,很可能出现的错误既不是语法错误也不是功能错误,这个时候,计算机内部结构的知识可能会给我们打开一扇窗。


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值