一、char数据类型的最大与最小值计算(补)
注:默认情况下数据类型均为有符号
char是1个字节,一个字节有8个bit位,因此char共有8个bit。其中最高位为符号位,0是正数,1是负数
整数的数值在计算机的存放以补码的形式
- 最大值——即为正数
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
最大的正数,符号位为0,其余为1,由于正数的补码与原码相同,因此正数的数值可以直接算为64+32+16+8+4+2+1=127
- 最小值——即为负数
1 0 0 0 0 0 0 0
最小的负数,符号位为1,其余为0,然后由于负数的数值在计算机以补码的形式存放,因此算出补码:
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
则数值为-128
补充:
注: 在编程中必须要注意定义声明的数据类型,以及有符号与无符号的类型的注意,否则会使程序计算得到错误结果。
例如
#include <stdio.h>
2 int main()
3 {
4 char height;
5 unsigned char height2;
6
7 height = 170;
8 height2 = 170;
9
10 printf(" 我的身高为%d厘米\n",height);
11 printf(" 我的身高为%d厘米\n",height2);
12 return 0;
13 }
运行结果:
二、C语言(续)
1.字符
字符型是特殊的整型类型
ASCII码
2.字符串
声明:char 变量名【数量】 赋值: 变量名[索引号]=变量
例如:
char name [5]
name[0] = 'L';
name[1] = 'r';
name[2] = 'q';
name[3] = 'g';
name[4] = 'z';
//也可以合并写起来定义字符串
charm name[5] = { 'L', 'r','q','g','z'};
格式化输出函数中占位符
- %d ——有符号的十进制整型
- %u——无符号的整型
- %c——字符型
- %f——浮点型(%.2f——指的是精确到小数点后2位、%11.9f——指的是整体长度为11位,小数点后9位)
- %s——字符串
注:字符串在定义声明是需要注意一定要在定义时加一个'\0'
例如
#include <stdio.h>
2 int main()
3 {
4 char a[5] ={'f','i','s','s','c'};
5 char b[] ={'f','i','s','s','c'};
6 char c[] ={'f','i','s','s','c','\0'};
7 char d[6] ={'f','i','s','s','c','\0'};
8
9 printf("%s\n",a);
10 printf("%s\n",b);
11 printf("%s\n",c);
12 printf("%s\n",d);
13 printf("hello\n");
14
15 return 0;
16 }
运行结果:(出现了问题)
因此要按照 第六行或者第七行这样定义 或者也可以定义为
char z[] ={"fissc"};
char z[] ="fissc";