全新网站如何做百度竞价,sem是什么岗位,php+mysql网站开发教程,国家企业公示系统官网查询4.2 bits/byte的介绍与ASCII码的引入
这个是详细介绍计算机内部原理的基础#xff0c;bits与byte其实这两个是计算机中非常重要的单位。首先看一下bits#xff0c;它是一个基础的计算机单位。计算机单位#xff1f;像长度单位是米#xff0c;体重的单位是kg#xff0c;你…4.2 bits/byte的介绍与ASCII码的引入
这个是详细介绍计算机内部原理的基础bits与byte其实这两个是计算机中非常重要的单位。首先看一下bits它是一个基础的计算机单位。计算机单位像长度单位是米体重的单位是kg你这个是啥玩意呢
比特bit是计算机数据的最小单位只能表示两个状态0 或 1。它是构成更大数据单位如字节、千字节等的基本元素用来表示和处理信息。1bit中只有01两个状态在经典计算机中而计算机中的东西都是以0/1表示的。但是吧这个实在是太小了所以我们一般使用byte(字节来进行一些计算等等的事情。
bytes字节1bytes 8bits所以一个字节能有八个比特。比如说010000000这个就是代表了一个字节一个1/0代表的是一个bits。那具体这个01000000代表啥这个会在之后说到。一个字节代表了256个整数。当然具体的范围要等会儿说因为每一个比特是两种情况所以应该是个整数。
那么到这里我知道了计算机不喜欢用十进制的数字喜欢使用二进制的方式二进制是计算机的基础而为啥之前的文章要写十六进制呢是因为十六进制是二进制较为简单的缩写同样在计算机的内部也经常使用。那么到这里有一个非常大的逻辑漏洞那么我的字母小数点逗号引号那计算机是怎么认识的呢这个就要提到ASCII码了 这个图片是来自于这个网址ASCII码十六进制的表格 - 搜索 图片 (bing.com)。原来的网站是ASCII码对照表完整版_360新知 (so.com)。
在这个代码中非常详细的讲解了为啥同样二进制也是八位的一个byte比如说我打了一个“ha”
ha这个可以对照表注意大小写是不一样的01101000 01100001二进制68 61十六进制这个就是为啥计算机能懂我们写的东西了因为都是由这个数字编写而成。
那么刚刚说的0100 0000是啥可以对照一下ASCII表是。
4.2二进制体系与二进制补位
4.2.1介绍二进制补位
刚才在介绍关于八比特等于一字节然后有256个数字但是并没有范围的时候其实大家的第一反应肯定是[0,255]啊这不是很简单么那么这个是无符号的二进制体系。很简单0000 0000是0这样子到255但是有一个问题怎么表示负数所以在8位的时候也就是一个字节有一个特殊的体系叫做二进制补位补位的出现弥补了我们没有负数的情况。 二进制补位圆圈 - 搜索 图片 (bing.com)这个圆圈其实非常的清楚。可以说在补码的情况下左边是0的一般是正数然而左边是1的是负数那么补码的出现很好的帮助计算机做减法有负数这些问题。那么在4bits的情况下范围是[0,15],有补码的情况下是[-8,7],而这个范围的计算公式是 这个n是指有几个bits。那么返回来8bits的情况下有补码的时候范围是啥呢,是这个范围。
4.2.2补码的经典问题
到这里如果我问你在4位二进制的体系下-3是多少查表得1101
那么8bits呢
那么10bits呢
那么20bits呢
不能全部列出来啊这个太难受了
所以遇到这个非常非常经典问题的时候你的解决方法其实非常多我现在介绍一种
我用4bits下-3是多少为例子因为这个最为简单学习理科都是先学习简单的然后总结经验做出假设最后证明推向所有情况首先我们来看一下4bits中有个数字。16个数字那么-1 是15因为是0000左边那个那么刚好-1的那个值是15的二进制。1111这是巧合么可以继续探究得出了第一种方法。我们首先计算有多少的值然后减去它想要的数字从而能知道这个数字的二进制码是多少。
关于正数呢更简单了它压根就是十进制因为你观察十进制的1-74bits中就是二进制的1-7因为补码在这个时候并没有改变。