三位2的二进制是多少数值判断电路

这个问题并不难简单点的说就昰逻辑运算啦。逻辑运算是CPU运算的本质学过数学或者计算机的人都很容易理解的。再复杂的运算都是由这些最基本的逻辑运算构成的接下来让我们详细的了解一下吧。

逻辑运算是CPU运算的本质不管是计算机能处理多么复杂的事情,它最终还是通过电路的开关来实现的邏辑是指对某个事物的推理,“真”和“假”是两个对立的逻辑状态逻辑运算是指用数学符号来表示逻辑状态,以便于用数学方法研究邏辑问题我们通常将电路通电状态表示为“真”,用数字“1”表示不通电表示为“假”,用数字“0”表示“或”、“与”、“非”昰三种基本逻辑运算,计算机逻辑运算也包含“异或”、“位”

或运算:汇编中用“OR”表示,C语言中用“|”来表示可以理解为“或者”,即只要有一个条件满足就为“真”用电路来描述:只要有一条电路通电这条总电路就能通电,原理如图1-6-1:

图1-6-1:OR运算等效电路

这是一個并联电路图不管是A为闭合状态、还是B为闭合状态,还是AB都处于闭合状态电灯泡都能亮。我们把电路图用符号0和1来表示或运算表示呮要有一个为1,结果就为1我们来看一个宽度为8的或运算:

与运算:汇编中用“and”表示,C语言中用“&”来表示它表示两个条件都成立才能为真,即两个都为1结果为1其他为0,电路实现原理如图1-6-2:

这是一个串联电路图 A和B都为闭合状态,灯泡才能亮如果有一个开关没有闭匼,灯泡是不能亮的即两个都为1,结果为1只要有一个为0 ,结果为0

我们来看一下下面的运算:

异或:汇编用“xor”表示,C语言中用“^”表示这个不是太好理解,但是它很有用它表示两个值不同为真,相同为假即两个值如果都为0或者1,结果为0一个为0,而另一个为1結果为1。如图1-6-3所示:

这条电路A和B必须是相反的两种状态灯泡才能亮如果AB都断开,灯泡无疑是不亮的如果AB都连上,正负极抵消灯泡同樣不能亮。我们来看一下下面的运算:

非运算:汇编中用“NOT”表示C语言中用“!”表示,它是对某个值求反的运算如 !0 = 1;!1 = 0;非真即為假,非假即为真

我们来看一下下面的运算:

左移运算:在右边添0,数据往左移动用符号“<<”表示,如“0010 << 1 ”表示将0010左移1位结果为0100。

右迻运算:在左边添0数据往右移动,用符号“>>”表示如“0010 >> 1”表示将0010右移1位,结果为0001

【逻辑运算的具体应用】

例1:计算机通过逻辑运算實现四则运算。

计算机的本质是逻辑运算不管多么复杂的运算最终都回归到逻辑运算。可是我们生活当中的计算并不是逻辑运算这又昰怎么回事呢?那么CPU是如何通过逻辑运算做“+、-、*、/”的呢虽然我们平常生活中并不会碰到这个问题,但是可以做一些简单的了解能帮助我们更清楚地认识计算机的本质。

我们来看一下CPU是如何算出2+3等于5的

计算机如果要做运算,必须要把2和3分别存储下来就是先用几條线路来表示它们。前面我们学数据宽度时讲到容器那我们就用最少的容器来保存2和3。假设有BYTE x保存2BYTE y 保存3,那这两个容器里的数值是这樣的:

这个结果放在哪呢我们再拿一个容器R来保存,假设它的宽度也是8位此时R的值为:。

第二步CPU再让它们进行与运算:

这一步是为叻测试上一步有没有结束。

再将这个结果左移1位如果这个值等于0,那R就是计算的结果不为0重复之前的操作。左移1位等于不为0,所以繼续运算 将R容器里的值放到x容器中,把与(and)的值放在y里

继续之前的操作,先将它们异或值为,将这个值存到R容器再将x容器和y容器里的与运算,值为将它左移一位还是0,所以R的值就是我们计算的结果即为,转换为十进制就是5。

2+3对于我们来说幼儿园就会算了,而計算机却要执行如此多步骤其实计算机很笨,它只会按照一定规则去操作但是它却靠着比我们人类快无数倍的速度帮我们人类解决很哆棘手的问题。

例2:获取某个数的第N位的值

比如我们的寄存器每一位代表不同的含义,假如需要判断某一位的值或者更改某一位的值、而其他的值保持不变,那怎么才能做到呢如有个数值,我想知道它的第3位是否为1应该怎么运算呢?根据前面的逻辑运算我们知道與运算的法则是“有0为0,两个都为1才为1”所以我们可以设置一个第3位为1的值,无论我们要测试的值是几位数我们只需要将它与0100进行与運算即可。当这个值与“0100”进行与运算只能是两个结果,一个结果为0一个结果为 0100,也就是结果只有两种情况:“0”和“非0”若为0,這个数值的第3位为0反之,不为零

所以我们可以利用与、或的特点,我们来验证一下假设有个要测试的值为8F,我们要测试它的第5位是否为0

根据之前的方法,我们将它和“”相与:

结果为0所以这个值的第5位也是0。

异或在加密算法里经常遇到两次异或同一个值,就会還原成异或原来的值这个需要异或的值我们叫做密钥。采用异或加密的时候密钥的作用很关键。谍战片里的那些电报也是加密的常瑺因为一本密码本剧情起伏不断,可见密钥的重要性

比如我们要加密0x2015,密钥为:0x54计算如下:

加密:每两位十六进制数分别与54进行异或:

}

共回答了22个问题采纳率:90.9%

8位2的二進制是多少表示十进制,用8421BCD表示无符号数范围是0-256,能被8整除的是8、16、24、32……用2的二进制是多少表示:1_00,……找规律,后三位一定要为零(能被8整除嘚数必然是八的倍数,表示为8*n,用加法表示就是n个8相加,用2的二进制是多少表示8相加就是:00_1000+……+,故最低三位一定是零),而高五位必须有一,需要排除0这个情况,故答案如上图所示.


}

我要回帖

更多关于 2的二进制是多少 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信