0
点赞
收藏
分享

微信扫一扫

【C语言】两个字母打印出的整型数发现

有一次无意间在敲代码的时候无意间想到一个问题,总所周知,当我们打印字符但类型设为整形时,通常会打印出该字符所对应的ASCII值。

但如果当我把两个字符当一起的时候,按照同样的方法打印出来的是什么呢?

这就让我很好奇了(大佬轻喷,即使可能很简单,但是这只是一位爱探索的小白的好奇心而已)

#include<stdio.h>
int main()
{
printf("%d", 'ab');
return 0;
}

当我们运行这一段代码的时候,输出的结果如下图

【C语言】两个字母打印出的整型数发现_十进制数

按照常用的逻辑思维,应该是输出两个ASCII码值的相加,但这里的结果显然不是。

随后,我便想到了二进制的相加

【C语言】两个字母打印出的整型数发现_ascii码_02

 但两个二进制数相加结果为 11000011,化为十进制数为195,和结果也不对。

但我初步判断是和二进制有关(因为十进制确实找不出有任何联系)

我便把24930变为二进制数,为0110 0001 0110 0010

再经过对比突然发现,是a,b的ASCII码值二进制数的叠放

即a的01100001和b的01100010放在一起,所组成的二进制数转化为十进制数


如果各位大佬知道原理的,希望您能在评论区提点提点小白我。

个人愚见,望交流学习!! 转载请注明出处

学习是一个需要不断进步不断前进的过程!!希望作者能与读者一起坚持向前!!


举报

相关推荐

0 条评论