八块腹肌的胖子 发表于 2020-4-1 14:28:56

C语言S1E7作业题求助

求助没看懂解释,符号位怎么又转化为十进制,hh说明长度是什么长度,对结果有什么影响
0. 填充下边代码,使得打印结果为:-1 和 255

#include <stdio.h>

int main()
{
      signed char i;
      unsigned char j;

      i = 255;
      j = 255;

      printf("signed char %hhd\n", i);
      printf("unsigned char %hhu\n", j);

      return 0;
}


答:char 类型占一个字节的空间,因此 unsigned char 的取值范围是 0~255,signed char 的取值范围则是 -128~127。十进制的 255 即二进制的 11111111,signed char 第一位为符号位,因此其值转换为十进制后是 -1。
printf 函数使用 %c 打印 char 类型的字符,使用 %d 和 %u 则打印其对应的 ASCII 码(其中 %d 打印带符号数,%u 打印无符号数)。signed char 和 unsigned char 使用 hh 说明其长度。

zxcbcv 发表于 2020-4-1 17:12:04

建议看下
printf -- 格式化输出 https://fishc.com.cn/thread-66471-1-1.html 和回看 当节课的视频

八块腹肌的胖子 发表于 2020-4-1 17:44:10

zxcbcv 发表于 2020-4-1 17:12
建议看下
printf -- 格式化输出 https://fishc.com.cn/thread-66471-1-1.html 和回看 当节课的视频

谢谢了
页: [1]
查看完整版本: C语言S1E7作业题求助