面试复习2:【计算机基础:二进制+字节+移位运算】

二进制

提到二进制,为啥计算机底层数据存储都采用二进制呢?计算机内部事由IC电子部件构成,IC的一个引脚,只能表示两个状态(《程序是怎样跑起来的》第二章)
在这里插入图片描述

字节

二进制的数一般是8位、16、32,8位的二进制数被称为一个字节,字节是最基本的信息计量单位,而位是最小单位,字节是基本单位,内存和磁盘都是用字节来储存和读写数据,使用位单位则无法读写数据,因此,字节是基本单位

位bit

bit位:位是计算机存储的最小单位简称为b也称为比特(bit)例如1b,2b,3b
byte字节:byte字节是计算机用于计量存储容量的,一种计量单位
1byte= 8bit
1byte =1B
1byte=存1个字母
2byte=存一个汉字

32位和62位系统有什么区别:

  1. 处理数据能力不同:64位的一次可以处理64位的数据,向下兼容,比如32位 16位
  2. 支持的内存不同,或者说寻址能力不同:32位的最多支持4gb的内存,而64最多支持上百g的内存
  3. 架构不同
  4. 对配置要求不同,32位系统需要32位的配套系统安装

疑问:既然有32 64,那有没有128位呢?

字符:电子计算机或者说是无线电通信中字母、数字、符号的统称

各类型占用比特(bit)

在这里插入图片描述

理解

  • 1个byte(字节)= 8位(bit),每一位就是0、1二进制,那么8位就能储存 2 8 = 256 2^8=256 28=256个数字,所以1个字节能够代表256个数字,取值范围在-128~127
  • 以此类推,1个short(短整型)=16位,那么就能储存 2 16 = 65535 2^{16}=65535 216=65535个,取值范围就在-32768~32767

吃透字符:

ASCII

字符的历史比较复杂:
分为可见字符和控制字符:

  • 可见字符:英文字母、数字、标点符号
  • 控制字符:如 换行、回车等

在这里插入图片描述
如图,将这0~127(128个)的编号称作码位,代表了字符的id信息,再把这每个字符的码位转化二进制信息进行存储,这样的二进制信息为ASCII码:
在这里插入图片描述
但是原始128个ASCII码字符过于少,仅满足美国需求,为了满足欧洲等国家字符集的需求,又对ASCII进行了扩充,从128扩充到255,那么ASCII码也就只能表示256个字符,对于中国来说,实在太少!

因为8位最多只能表示256个字符,对于中文来说,有几千个中文字符,我们则必须用16位表示一个字符了!那么要先设计字符集:

GB2312字符集

使用分区管理,共计94个区,每个区含94个位,共8836个码位。
先介绍一下码位:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
前面的ASCII码可以直接转为二进制来存储,GB2312如何存储?
在这里插入图片描述GBK2312的高位和低位都大于127,那么计算机只要碰到大于127的字节就是汉字的开始
在这里插入图片描述
那么,世界上就会有不同的编码,会非常乱!

在这里插入图片描述
ISO组织为了解决这个问题,开始规范化编码!提出了Unicode,目的就是把世界上所有字符放在一起并编号
在这里插入图片描述
但是ASCII本来也只需要8位、GB2312只用16位,这里的UCS字符集需要32位,扩大了4倍、2倍,导致Unicode提出后并没有被广泛接受,而后期各国交流更加频繁,从而新生了一个新编码UTF-8
UTF-8每次传送8位数据,是一种可变长的编码格式
在这里插入图片描述

移位运算在这里插入图片描述

移位运算指的是将二进制数值各个数位进行左右移位(shift)的运算,移位有左移、右移两种。
左移好理解,就是将原数值乘以2的n次幂,但是右移要注意了!二进制中的最高位表示的是符号(1代表负数,0代表正数),
eg:那么-1用8位如何表示呢?
大部分人会理解成:1的二进制是00000001,那么-1就是10000001,答案错!正确为:11111111。
计算机做减法运算时,实际上内部是加法,那么表示负数,就要用到正数的补数表示,补数=正数取反+1;
验证:1+(-1)=

		0000001
	+	1111111
	   10000000

这里相加后是9位,其中最高位的1溢出,答案为0,符合。
        仔细思考一下补数整个的机制,就不难理解如-32768至32767、 -128至127这些数据表示大范围为何正数最大值都比负数最大小1了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值