C++基础level0——字节转化、进制转换、原码反码补码、数据类型

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×8b8388608b

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年发明。

二进制数据是用01两个数码来表示的数。它的基数为2,进位规则是逢二进一,借位规则是借一当二

当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。

八进制: Octal,缩写OCTO,一种以8为基数的计数法,采用01234567八个数字,逢八进1

一些编程语言中常常以数字0开始表明该数字是八进制。

十六进制:简写为hex或下标16,在数学中是一种逢161的进位制。一般用数字09和字母AF(或a~f)表示,其中:A~F表示10~15。开头的“0”解析器更易辨认数,而“x”则代表十六进制。在“0x”中的“x”可以大写小写。

掌握:进制之间相互转换

4、原码、反码、补码

引入:

由计算机的硬件决定,任何存储于计算机中的数据,其本质都是以二进制码存储。

根据冯~诺依曼提出的经典计算机体系结构框架。一台计算机由运算器,控制器,存储器,输入和输出设备组成。其中运算器,只有加法运算器,没有减法运算器。

而且从硬件的角度上看,只有正数加负数才算减法。

正数与正数相加,负数与负数相加,其实都可以通过加法器直接相加。

原码,反码,补码的产生过程,就是为了解决,计算机做减法和引入符号位(正号和负号)的问题。

原码:是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。

反码:正数的反码还是等于原码;负数的反码就是他的原码除符号位外,按位取反。

补码:正数的补码等于他的原码;负数的补码等于反码+1。

练习:

位二进制补码中,10101011 表示的数是十进制下的( )

A. 43  B. -85  C. -43  D.-84

5、数据类型

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。

数据类型在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。

变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。

 

类型

关键字

布尔型

bool

字符型

char

整型

int

浮点型

float

双浮点型

double

无类型

void

宽字符型

wchar_t

练习:int的取值范围

计算机中32int类型变量的范围,其中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,溢出。

所以带符号32int类型整数为-2147483648~2147483647

 

部分资源来网络,如有侵权,请告知删除,O(∩_∩)O谢谢

发布了11 篇原创文章 · 获赞 0 · 访问量 3135

猜你喜欢

转载自blog.csdn.net/sayiaina/article/details/94889033