前言
首先我们要知道当前的计算机系统使用的基本上都是二进制,数据在计算机中主要是以二进制补码的形式存储的;而在电脑内部所有的运算都是加法。
一.数据类型的归类
1.1基本类型
1.整型类型
int //整形
short int //短整型
long int //长整型
long long int //双长整型
char //字符型
bool // 布尔型 //c99新增
而整型的每一种都可以分为:无符号(unsigned)和有符号(signed)两种类型 ,signed可以省略。
列如:
charunsigned charsigned charshortunsigned short [ int ]signed short [ int ]intunsigned intsigned intlongunsigned long [ int ]signed long [ int ]
2.浮点类型
float //单精度浮点型
double //双精度浮点型
long double //长双精度浮点型
C中有三个类型可以储存复数: //99新增
float _Complex //实部和虚部都为float类型
double _Complex //实部和虚部都为double类型
long double _Complex //实部和虚部都为long double类型
2.1 派生类型
1.指针类型(*)
int * pi ;char * pc ;float* pf ;void* pv ;
2.构造类型:
数组类型 ([])结构体类型 struct联合类型 union
3.枚举类型(enum)
是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。
4.空类型(void)
表示空函数,也就是没有返回值的函数。
通常应用于函数的返回类型、函数的参数、指针类型 。
二.大端小端与原码、反码、补码
数值的表示有多种形式:2进制,8进制,10进制,16进制等等。
二进制只使用0和1两种数字表示数值。
二进制 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
八进制 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F 10
变量创建需要在内存中开辟空间,不同类型所开辟的空间大小也不同。
而数值在计算机中的内存中都是以二进制形式存储的。
2.1什么是大端小端
大端存储:用内存的高地址存储数据的低位,而内存的低地址存储数据的高位;
小端存储:用内存的低地址存储数据的低位,而内存的高地址存储数据的高位。
2.2原码、反码、补码
以整数为例:
计算机中有三种表示整数的方法,即原码、反码和补码。
有符号整型中第一位为符号位,‘0’表示正,‘1’表示负。
正整数的原码、反码、补码相同
负整数的三种表示方法都不同:
原码
直接将数值按正负数形式编译成二进制的形式
例如 -1;
原码:10000001
反码
原码的符号位不变,其他位按位取反
例如 -1;
反码:11111110
补码
反码+1得到补码
例如 -1;
补码:11111111