1.相关概念
变量与常量的定义
常量:在程序运行中其值不能改变的量。
变量:在程序运行中其值可以改变的量。
存储器的区分
RAM | ROM | |
中文名 | 易失存储器 | 不易失存储器 |
特点 | 掉电丢失数据,但存取快 | 掉电不丢失数据,但存取幔 |
标识符
标识符只能由数字、字母和下划线组成,需要区分字母大小写且开头不能由数字组成。
进制之间的转换
1位8进制数对应3位2进制数,1位16进制数对应4位2进制数。
8/16进制数 | 2进制表示(8j进制数) | 2进制表示(16进制数) |
0 | 000 | 0000 |
1 | 001 | 0001 |
2 | 010 | 0010 |
3 | 011 | 0011 |
4 | 100 | 0100 |
5 | 101 | 0101 |
6 | 110 | 0110 |
7 | 111 | 0111 |
8 | / | 1000 |
9 | / | 1001 |
A | / | 1010 |
B | / | 1011 |
C | / | 1100 |
D | / | 1101 |
E | / | 1110 |
F | / | 1111 |
2.常用基本数据类型
整型数据
无符号 | 数据范围 | 有符号(可以存储负数) | 数据范围 | 占用空间(字节) | |
短整型 | unsigned short | 0~(2^16)-1 | short | -2^15~(2^15)-1 | 2 |
整型 | unsigned int | 0~(2^32)-1 | int | -2^31~(2^31)-1 | 4 |
长整型 | unsigned long | 0~(2^64)-1 | long | -2^63~(2^63)-1 | 8 |
超长整形 | unsigned long long | 0~(2^64)-1 | long long | -2^63~(2^63)-1 | 8 |
以整型(int)为例
.任何整型变量在存储时都是以16进制的形式存储。
.一般情况下,整型数据都是以小段存储的形式储存,即存储时小位的值置于前面的位置,因此查 看时需将数据颠倒。
.int 存储时占用4个字节,32个比特位,其中第一个比特位用于存储该整型数据的符号,即1为负数,0位正数。
eg1: int 123
十进制数 | 2进制表示(除以2取余) | 16进制表示(4位2进制表示一位16进制) |
123 | 00000000000000000000000001111011 | 0x0000007B |
存储形式
7B |
00 |
00 |
00 |
eg2: int -123
二进制表示(源码),该整型的绝对值用二进制表示
00000000000000000000000001111011
反码,即将源码的0变为1,1变为0
11111111111111111111111110000100
补码,即反码-1
11111111111111111111111110000011
将补码转化为16进制数,再以eg1形式存储
整型溢出:
#include <stdio.h>int main(void)
{int i;int j;i = FFFFFFFF;j = i + 1;printf("%d\n%d\n",i,j);return 0;
}
输出结果
浮点型
floa(单精度浮点型) | double(双精度浮点型) | |
占用空间(字节) | 4 | 8 |
以floa 为例
存储形式:
符号位(占用1比特位):是1为负数,是0为正数。
阶码位(占用8比特位):127+小数点移动的位数。
尾数位(占用23比特位):只存取用科学计数法表示的2进制数的小数部分。
eg3: -100.125
整数部分:100------1100100
小数部分(乘2取整数部分):0.125------001
科学计数法表示:1100100.001------1.100100001*2^6
小数点移动6位,则阶码位为:127+6------10000101
-100.125补码为:1100001010010000100000000000000
转化为16进制为:C2C84000
字符型
定义:
简单来看,字符类型在计算机内部和整数存储方式相同,标准ASCII码使用8位作为一个字符的存储单元。在程序设计中字符的常量使用单引号表示,尽量避免使用整型数据表示字符常量。对于ASCI码表中的非打印字符,可以使用其ASCII值或者转义序列来表示,通常使用反斜杠“\”来表示字符的转义。对于打印字符,采用%c与%d将会输出不同类型的数据。
区分:
eg4: '1'-----字符(占用1个字节)
1------整型(占用4个字节)
“1”------字符串(占用8个字节)