夏夜低吟 发表于 2019-8-21 14:53:00

关于 S1E10:关系运算符和逻辑运算符。课后作业有个小问题求教?

1. 请解释为何下边变量 a 的值为何打印出来是 144(请写出分析过程)?M
#include <stdio.h>

int main()
{
      unsigned char a, b, c;

      b = c = 200;
      a = b + c;

      printf("a = %u\n", a);

      return 0;
}
这道题我没有理解为什么会用二进制计算,char不是表示字符的么?
求各位大神指教

jackz007 发表于 2019-8-21 15:19:39

本帖最后由 jackz007 于 2019-8-21 15:27 编辑

      在 C 语言里,char 代表单字节(8位)变量,其表达范围是 -128 ~127,unsigned char 的表达范围是 0 ~ 255。
      当然,char 与字符之间也是有关系的,在计算机中,用来表示字符的 ASCII 码的数值范围是 0 ~ 127,恰好适合用 char 类型变量来进行表达。例如,字符 'a' 的 ASCII 码是 65,字符 '2' 的 ASCII 码是 50,等等。

flamer 发表于 2019-8-21 16:19:03

char只是我们当做是字符,计算机只把它当成一个字节的数据,同样的int当成4个字节short当成2个字节的数据
400一个字节放不下了但是就读一个字节所以是那个结果就好像5+7 但是结果只要一位那就只给你个位数2
页: [1]
查看完整版本: 关于 S1E10:关系运算符和逻辑运算符。课后作业有个小问题求教?