1、存储空间
bit就是位,也叫比特位(bit),是计算机表示数据最小的单位
B——比特——byte字节
KB——千比特——kilobajt——千字节
MB——兆比特——megabajt——兆字节,百万字节(一般计算机的内存条都是用此来计算单位的)
GB——吉比特——gigabajt——吉字节(一般计算机的CPU都是用此来计算单位的)。
TB——太比特——Terabyte——太字节,或百万兆字节
1 B = 8b
1 KB = 1024 B
1 MB = 1024 kB
1 GB = 1024 MB
1 TB = 1024GB
所以1MB = 1024×1024B = 1048576×8b=8388608b
2、C++数据类型与所占字节
类型 |
位 |
范围 |
char |
1 个字节 |
-128 到 127 或者 0 到 255 |
unsigned char |
1 个字节 |
0 到 255 |
signed char |
1 个字节 |
-128 到 127 |
int |
4 个字节 |
-2147483648 到 2147483647 |
unsigned int |
4 个字节 |
0 到 4294967295 |
signed int |
4 个字节 |
-2147483648 到 2147483647 |
short int |
2 个字节 |
-32768 到 32767 |
unsigned short int |
2 个字节 |
0 到 65,535 |
signed short int |
2 个字节 |
-32768 到 32767 |
long int |
8 个字节 |
-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
signed long int |
8 个字节 |
-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long int |
8 个字节 |
0 to 18,446,744,073,709,551,615 |
float |
4 个字节 |
+/- 3.4e +/- 38 (~7 个数字) |
double |
8 个字节 |
+/- 1.7e +/- 308 (~15 个数字) |
long double |
16 个字节 |
+/- 1.7e +/- 308 (~15 个数字) |
wchar_t |
2 或 4 个字节 |
1 个宽字符 |
3、进制
二进制:是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于1679年发明。
二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
八进制: Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。
一些编程语言中常常以数字0开始表明该数字是八进制。
十六进制:简写为hex或下标16,在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15。开头的“0”令解析器更易辨认数,而“x”则代表十六进制。在“0x”中的“x”可以大写或小写。
掌握:进制之间相互转换
4、原码、反码、补码
引入:
由计算机的硬件决定,任何存储于计算机中的数据,其本质都是以二进制码存储。
根据冯~诺依曼提出的经典计算机体系结构框架。一台计算机由运算器,控制器,存储器,输入和输出设备组成。其中运算器,只有加法运算器,没有减法运算器。
而且从硬件的角度上看,只有正数加负数才算减法。
正数与正数相加,负数与负数相加,其实都可以通过加法器直接相加。
原码,反码,补码的产生过程,就是为了解决,计算机做减法和引入符号位(正号和负号)的问题。
原码:是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。
反码:正数的反码还是等于原码;负数的反码就是他的原码除符号位外,按位取反。
补码:正数的补码等于他的原码;负数的补码等于反码+1。
练习:
在8 位二进制补码中,10101011 表示的数是十进制下的( )。
A. 43 B. -85 C. -43 D.-84
5、数据类型
使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。
数据类型在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。
变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。
类型 |
关键字 |
布尔型 |
bool |
字符型 |
char |
整型 |
int |
浮点型 |
float |
双浮点型 |
double |
无类型 |
void |
宽字符型 |
wchar_t |
练习:int的取值范围
计算机中32位int类型变量的范围,其中int类型是带符号整数。
正数在计算机中表示为原码,最高位为符号位:
1的原码为0000 0000 0000 0000 0000 0000 0000 0001
2147483647的原码为0111 1111 1111 1111 1111 1111 1111 1111
所以最大的正整数是2147483647
在二进制中,0有两种表方法。
+0的原码为0000 0000 0000 0000 0000 0000 0000 0000,
-0的原码为1000 0000 0000 0000 0000 0000 0000 0000,
因为0只需要一个,所以把-0拿来当做一个最小的数-2147483648。
-2147483648的补码表示为1000 0000 0000 0000 0000 0000 0000 0000,在32位没有原码。
注意,这个补码并不是真正的补码,真正的补码是1 1000 0000 0000 0000 0000 0000 0000 0000,溢出。
所以带符号32位int类型整数为-2147483648~2147483647
部分资源来网络,如有侵权,请告知删除,O(∩_∩)O谢谢