#include <stdio.h>
int main() {
char a = '2',
b = '5';
printf("%d\n", a * b);
printf("%c", a * b);
return 0;
}
输出的结果是2650 和Z,2650我理解,但是这个Z是怎么来的?求解答。
通过二进制乘法可以计算出字符2的二进制00110010乘字符5的二进制00110101得到的结果是1010 0101 1010,由于系统对每个字符只能提供8位来进行存储因此前面超出的部分省略只剩下了后8位刚好是字符Z
'2'和‘5’对应的ASCII码分别是50 53,50 * 53 = 2650,超过了256位(C语言用来存char型所占空间的大小)
2650 % 256 = 90
90对应的字符便是大写字母Z