---吉他福-常识问题:加法的本质是什么?计算机二进制如何加减乘除?-源内容页面---

常识问题:加法的本质是什么?计算机二进制如何加减乘除?   电脑技术     老贾/吉他福   发布时间:2022/5/17 14:06:00   阅读次数: 297       支持 1       中立 1       反对 2   此主题内容最后修改日期:2022 - 05 - 18 11:11:42

集合论数学认为加法仅仅是某种映射规则,是人为规定的种种规则之一而已。而对于减和乘除可以从加法规则推导变换而来。



计算机二进制也是如此,加法是基础,于是实现四则运算也就非常简单了,可以说二进制就是天生为了运算而生的进制。

加法

加法可以通过非常简单的逻辑门电路实现,下面的电路是一个异或门和与门的组合电路,A+B=CS。



减法

减法也按照加法计算,按照常识十进制的例子说,比如:

54-13=54+(99-13)-99

99-13就是把13"取反”,取反就是掰开每个数字用进制里最大的数9减,就是86。

对于取反这种事,位数多一些也一样,十进制取反比如6831就是9999-6831=3168,还是每个数字用9减。

于是就有了:

54-13=54+(99-13)-99=54+(13取反)-99=54+(13取反)-100+1=54+(13取反+1)-100

这个取反在二进制里特别简单,因为二进制取反就是用1减,显然就是1变0、0变1。

所以就和十进制类似的,比如8位二进制:

a-b=a+(b取反)-11111111=a+(b取反+1)-100000000

显然最后舍去最高位的进位就是减100000000了,或者说根本就不用管他,这个最高位的进位就当作不存在就成了。



但是因为二进制里的有符号数的最高位,是用来表示正负号的,0是正号,1是负号,于是这个减100000000就免除了,这是因为负数采用了一种“取反+1”的表示方法,而正数就是原码,想想看:

如果把符号位也当作数来计算,则进位出现的100000000就正好把符号位的1变成了0,或把0变成了1,当结果的符号位是0的时候是个正数,这个结果正好就成了。

当结果的符号位是1,则就意味着没有产生进位,就是a小于b的情况了,这时结果是负数,这个符号位的1正好就对了,不仅如此,这个结果实际上正好是负数结果的“取反+1”。



乘法

二进制乘法就是移位和加法的结合,左移一位就是乘以一次10,当然不移就是乘以1了,比如乘以a*1111,就是分解为:

a*1000 + a*100 +a* 10 +a*1

就是不停的左移就行了。

除法

除法用移位和减法结合,从最高位开始对着除数减,就跟小学做除法一摸一样,因为只可能是0或1,够减就是1,不够减就是0,所以就非常简单了,小数就不停的补位继续减就成了。

顺便说些跟音乐相关的内容~~~~

二进制和音乐

看着不起眼的二进制,却能非常高效的制造音乐,二进制的位叫做bit,8bit就是8位二进制数,这么简单的数字就足以制造出好听的音乐来了。

8bit音乐,通过操控各种波形制造器,脉冲波、三角波、正弦波、方波、锯齿波和各种噪音,8bit足够调动2^8=256个音调和音色,这已经足够了。



8bit电子音乐,灵感来自8位游戏时代旧电脑控制台的声音。这种音乐通常会反映或由来自被视为原始或"过时”的技术的声音组成。



"我喜欢听8位音乐,因为我从小玩Game Boy游戏长大,我喜欢这些游戏中的音乐。”



  支持👍 1       中立👌 1       反对👎 2  

=================================

- - - 付费解锁权限,或留言寻求帮助 - - -