您的位置:首页 > 其它

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

2016-09-26 20:06 351 查看
程序要求:用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码表转换,之后以此类推。

即在我们正常编写程序的时候,很可能出现的错误既不是语法错误也不是功能错误,这个时候,计算机内部结构的知识可能会给我们打开一扇窗。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: