整型与字节转换关系

一、基本概念

:我们常说的bit,位就是传说中提到的计算机中的数据存储最小数据单位:说白了就是0或者1;计算机内存中的存储都是01这两个东西。在计算机中的二进制数系统中,位,简记为b,也称为比特,每个0或1就是一个位(bit)。计算机中的CPU位数指的是CPU一次能处理的最大位数。(1和0是计算机储存二进制的基本单位,包括现在你在电脑上看到的所有一切都是由1和0两个数组成的,一个即是一个位,8位(bit)一个字节,我们在电脑中看到的图像视频等都是计算机通过对储存器中无数个1和0的计算得来的。)

字节:英文单词:(byte),byte是存储空间的基本计量单位。1byte 存1个英文字母,2个byte存一个汉字。规定上是1个字节等于8个比特(1Byte = 8bit)。

:由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。如果是一台32位机,那么,它的1个字就由4个字节构成,字长为32位,字是计算机进行数据处理和运算的单位。由此可见,计算机的字长决定了其CPU一次操作处理实际位数的多少,即:计算机的字长越大,其性能越好。

ps:

1、二进制数系统中,位简记为b,也称为比特,每个二进制数字0或1就是一个位(bit)。位是数据存储的最小单位,其中8 bit 就称为一个字节(Byte)。计算机中的CPU位数指的是CPU一次能处理的最大位数。例如32位计算机的CPU一个机器周期内可以处理32位二进制数据的计算。

2、简单的说32位的CPU的数据线、地址线、控制线都是32位的,即CPU一次能够传送、处理32位的二进制数,所以理论上它能够寻址的范围是2的32次方,即4个GB,所以即使你的电脑能够安装8个GB的内存,系统也只能使用前4个GB的内存,而另4个GB的内存电脑就当没有。当然由于32位XP的限制,32位的机器也只能使用3个GB多点的内存。同理64位的CPU的数据线等是64位的,即CPU一次能够并行处理64位的二进制数,所以理论上它能寻址的范围为2的64次方,比32位的大得多多多,总之是N多个GB。只要系统、主板等支持,你的电脑可以装很大的内存。(当然电脑能够使用多大的内存,还要看主板北桥芯片,内存控制器,内存插槽数量等综合来看。)所以简单的看64位的系统要比32位的系统在单位时间内能够处理的数据更多,带宽更大,处理的速度更快。64位的CPU现在是向下兼容的,64位CPU组成的系统,能够装64位的操作系统,也能装32位的操作系统。当然由于目前大多数人使用的软件还都是32位的,因此并不能完全发挥出64位CPU的性能。

二、位、字、字节与KB等的转换关系

1b (bit 位) 1个位能存储就是0或1

1B(Byte字节)=8bit,

1KB (Kilobyte 千字节)=1024B,

1MB (Mega byte 兆字节 简称“兆”)=1024KB,

1GB (Giga byte 吉字节 又称“千兆”)=1024MB,

1TB (Tera byte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方),

1PB(Peta byte 千万亿字节 拍字节)=1024TB,

1EB(Exa byte 百亿亿字节 艾字节)=1024PB,

1ZB (Zetta byte 十万亿亿字节 泽字节)= 1024 EB,

1YB (Yotta byte 一亿亿亿字节 尧字节)= 1024 ZB,

1BB (Bronto byte 一千亿亿亿字节)= 1024 YB,

1NB(Nona byte )= 1024BB,

1DB(Dogga byte)= 1024NB

三、举例

例1:

根据GBK编码来说,两个字节一个汉字。
1Bit=1/16个字
所以16bit=1个汉字

例2:

1、Int32 //等于int, 占4个字节. 取值范围:-2147483648 2147483647

2、Int8 //等于byte,

3、Int16 //等于short, 占2个字节. -32768 32767

4、Int64 //等于long, 占8个字节. -9223372036854775808 9223372036854775807

解答:下面我们来计算一下int32

首先int32范围为-2147483648~2147483647 此处的单位就是位

1个字节占8位 4个字节就是32位 按照2进制取值就是2^31=2147483648

因为int32是无符号类型所以其取值范围为-231~231-1(-2的31次方到2的31次方-1)

也就是-2147483648 2147483647

如果是无符号类型unit32,则其的取值范围就是2^32-1(2的32次方-1)=0~4294967295

疑问:很多人好奇为什么要减1呢?因为计算机语言中,是由0开始的。

posted @ 2019-04-11 16:55  Ambition-LC  阅读(3253)  评论(0编辑  收藏  举报