- C语言入门
- 1、基本数据类型
- 2、计量单位
- 3、有符号数和无符号数
- 4、数据溢出的知识点
- 5、整型数据在内存中的存储方式
- **总结1**
- 6、char类型 数据 ----单个字符数据
- 7、ascii 码
- 8、转义字符概念:
char
short
int
long
float
double
long long
bool
如何计算数据类型或者变量在内存中所占的字节数?
#include#include int main() { //int类型所占的字节数 //printf将指定格式的字符串输出到屏幕终端上 //char printf("char size:%lun",sizeof(char)); //short printf("short size:%lun",sizeof(short)); //int printf("int size:%lun",sizeof(int)); //long printf("long size:%lun",sizeof(long)); //float printf("float size:%lun",sizeof(float)); //double printf("double size:%lun",sizeof(double)); //long long printf("long long size:%lun",sizeof(long long)); //bool --布尔数据类型 要加 头文件 printf("bool size:%lun",sizeof(bool)); printf("true size:%lun",sizeof(true)); //true false 其实是整型数据 占 4个字节 tr printf("false size:%lun",sizeof(false)); return 0; }
使用运算符 sizeof(数据类型的名字 或者变量名)
特别注意:
## 布尔类型bool 要添加 #include
1byte(字节) = 8个二进制数
1KB(千字节) = 1024字节
1M = 1024KB(千字节) 4
1G = 1024M
1T = 1024G
1G = 1024 * 1024*1024 字节
有符号数 (signed ) char a = -100 char a = 100; -->存储到内存中,最高位 表示符号位 1表示负数 0表示正数
无符号数 unsigned char a = 100;
unsigned char 0~255 (signed)char -128 ~ +127 正数:+0 ~ +127 负数:-0 ~ -127 由于+0 和 -0重复,-0表示 -128 unsigned short 0~65535(2^16-1) unsigned int 0~4294967295(2^32-1) #include#include int main() { //值的溢出 unsigned char a = 257; //0-255 char b = 129; //-128~+127 printf("a:%hhun",a); // u -->unsigned int h:half h:half 0 1 2 printf("b:%hhdn",b);
11 打印结果:
12 a:1
13 b:-127
整型数据(正数 、负数)在内存中是以二进制补码的方式存放的
总结11)当编译器 以整形的方式输出的时候(%d),它是以补码还原的方式进行解读。
2)当CPU将数据进行运算的时候,直接以内存中存放的形式进行运算,也就是数据运算的时候 使用补码
3) 以 %u的方式 输出 ,那么 值的范围 : 0 ~4294967295
(1)
unsigned char a = 255; // 0-255
char b = 255; //-128~ +127
printf("%d %un",a,a);
printf("%d %un",b,b);
255 255
-1 4294967295
(2)
unsigned short a = -1; // 0 - 65535
int b = a; //a == 65535
printf("%dn",a); //a == 65535
printf("%dn",b); //b == 65535
(3)
unsigned char a = -1; // 0 - 255
unsigned int b = -1; // 0 ~4294967295
printf("%d %un",a,b); // 255 4294967295
6、char类型 数据 ----单个字符数据
字符常量 'a' 'c' '1'
char val1 = 'a';
char val2 = 'b';
printf("val1: %c %dn",val1,val1);
printf("val2: %c %dn",val2,val2);
val1: a 97
val2: b 98
97、98为ASCIL输出值
7、ascii 码概念:char数据实际上是在内存存放的是一个小于255的编号(五符号整数)用来表示字符,这个编号叫做ASCII码。
如何查看 ascii 码??
直接在虚拟机 man acsll
所有的ASCII码都可以用“”加数字(一般是8进制数字)来表示。而C中定义了不能显示的ASCII字符,如’ ’,’t’,’n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。它告诉编译器需要用特殊的方式进行处理
1 ‘n’ —表示换行
2 ‘ ’ —表示空字符 字符串的结尾 就是以 空字符 为结束 “hello” —>默认会在后面加上 "
3 ‘t’ --制表符 按下 table按键的时候
’ dd’ ddd表示1到3位八进制数,打印效果为该数字对应的ASCII字符 ,
d 为 0
‘xhh’ hh表示1到2位十六进制数,打印效果为该数字对应的ASCII字符



