字节Byte
字节是内存划分的基本单位
内存划分的最小单位是:位 bit
换算关系:
1 Byte = 8 bit
1 KB = 1024 Byte
1MB = 1024 KB
1GB = 1024 MB
1 TB = 1024 GB
有符号数据类型:
(内置类型)(基本数据类型)
整型: 分为有符号与无符号
short(2个字节) int(4) long(4) long long(8)
1字节表示区间:-128~127(-2^7 ~ 2^7-1)共256个
2字节表示区间:-32768~32767(-2^15 ~ 2^15-1)
2字节表示区间:+-21开头的10位数据(-2^31 ~ 2^31-1)
2字节表示区间:(-2^63 ~ 2^63-1)
eg.电话号码的存储 11位 用long long 类型存储
两个非常大的数字:字符串表示
变量的定义:1.int num = 10;//32位的空间存放10的二进制
2.int num;//变量的声明,在内存中占32字节
num = 10; //变量的定义
无符号数据类型:unsigned int count
int count = -1;等同于signed int count = -1
都代表有符号 即有符号位 首位不计算 做标记位
unsigned int count 不存在符号位 只有数值位
即不存在负数
字符型: char(1)用英文单引号括起 本质是存的编号
char是0~127的特殊整型
eg.char c = 'a';//等于char c = 97;
char c = 'A';
char c = '0';//字符0 不是整型的数值0
浮点型:float(4)低精度 double(8)高精度
注:
类型转换
int num = 10;//4字节
int res = num;//4字节 value:10
这种是不需要转换的
char c = num;//char是1字节的
但如果所存数字在4字节后面的1字节内,系统自动帮我们转换,叫隐式转换
强制转换:
char c = (char)num;//()是强制转换符号 将num强制转换为char类型
(char)是显式转换
大数据转换到小数据类型 必须强制转换
高精度转换为低精度也必须强制转换
有精度转换为无精度也必须强制转换(float到int)
小数据赋值到大数据则不用强制转换 空余位置直接补充符号位
布尔型:bool(1) ture/false 1,2…… ture 0 false
ASCII字符集(128个字符 用8位二进制数的组合表示)0~127 在其基础上再加入新字符(>255)成为 Unicode字符集
中文:GBK(GB2312)英文:ASCII ISO ……
ps:图片来自c程序设计第五版 谭浩强
特殊ASCII值:字符0: 48
字符A:65
字符a:97