一切皆是数
上一节学习了二进制数,而在计算机的世界中(包括网络)任何信息都是以二进制数的形式存在的。数字、图片、文字、程序这些归根结底都是二进制数。
BIT(比特)
BIT是最小的信息单位,一位二进制数字表示的信息量称为1bit。如“0”和“1”都是包含1bit的信息量,“11”、“10”、“01”、“11”是包含2bit的信息量。在网络中是以bit为单位统计数据量的。我们在办理宽带时,运行商想你提供100M的宽带服务,就表示这条宽带每秒钟能传输100M个bit的信息量。1024bit = 1Kbit,1024Kbit = 1Mbit,1024Mbit=1Gbit,1024Gbit=1Tbit,1024Tbit=1Pbit,1024Pbit=1Ebit。通常bit简写成b,即Kb、Mb、Gb、Tb、Pb、Eb。
BYTE(字节)
BYTE是计算机一次操作处理的最小信息单位,1byte=8bit。我们通常需要从硬盘或内存中读取信息,一次读取的信息最小量是1byte。相反的向磁盘或内存中写入信息的,一次写入的最小量也是1byte。因此,我们在谈到硬盘、内存、文件大小、以及手机的内存和存储量时,我们指的都是byte。比如1Gb内存指的是这个内存可以保存1G个byte的信息。1024byte = 1Kbyte,1024Kbyte = 1Mbyte,1024Mbyte=1Gbyte,1024Gbyte=1Tbyte,1024Tbyte=1Pbyte,1024Pbyte=1Ebyte。通常BYTE简写为B,即KB、MB、GB、TB、PB、EB。当然耍流氓的硬盘厂商都以1000作为单位换算单位来计算硬盘容量,这也就是为什么我们买的1T硬盘,在装入电脑中不足1T的原因了(内存不存在这个问题)。
整数的形式
在计算中我们最长用的数据就是整数,整数不单可以表示数字,还可以表示文字。可以这么说除了需要小数计算的场景之外,计算机中所有的数据都是以整数的形式存在的。
整数的数据类型
用纸和笔来计数或计算的时候,需要多大的数字我们直接写出来即可,但在计算机中我们需要根据整数的大小合理地选择某种数据类型来处理整数。
在Intel处理其中可以选择用 1Byte、2Byte、4Byte、6Byte、8Byte、10Byte来处理整数。由于整数又分【无符号整数】和【有符号整数】,在处理时存在一定的差别,下面以1Byte存储整数的情况为例,分别讨论一下【无符号整数】和【有符号整数】
无符号整数
无符号整数就是指数学意义上的自然数(包括0),用1Bype存储自然数就是将1Bype中的所有bit都用来保存数值。1bit可以表示个无符号整数,即0和1。2bit可以表示个无符号整数,即00,01,10,11。依次类推1Byte可以保存个无符号整数,也就是十进制数的 0 ~ 257。
有符号整数
有符号整数指的是数学意义上的整数,因为需要区分“正”“负”,用1Bype存储有符号数时,需要用最高为的1bit保存符号,0代表正数,1代表负数,用剩余的7bit用来表示数值。因此1Bype能表示(128)个自然数 和 (128)个负整数。所以1Bype存储整数的范围用十进制数表示为 -128~127
整数据类型表
下表介绍汇编语言的整数类型
类型 | 中文 | 含义 |
---|---|---|
BYTE | 无符号字节 | 1Byte的无符号整数 |
SBYTE | 有符号字节 | 1Byte的有符号整数 |
WORD | 无符号字 | 2Byte的无符号整数 |
SWORD | 有符号字 | 2Byte的有符号整数 |
DWORD | 无符号双字 | 4Byte的无符号整数 |
SDWORD | 有符号双字 | 4Byte的有符号整数 |
FWORD | 远指针(无符号) | 6Byte的无符号整数,F是far远的意思,表示远指针,后序遇到再介绍 |
QWORD | 四字 | 8Byte的整数,后序验证是有符号还是无符号 |
TBYTE | 十BTYPE | 10Byte的整数,BCD数据,表示整数的方式比较特殊,后序遇到再介绍 |