计算机实现加减乘除

# 计算机是怎么操作的!(4+5)

0000 0100

0000 0101

-----------------(加法:计算机是不会直接加的)

0000 1001

 

#计算机的实现原理

#第一步:异或运算(不一样等于1)

0000 0100

0000 0101

----------------

0000 0001

 

#第二步:与运算(都是1等于1) 目的是判断是否有进位,,如果与运算结果为0,则没有进位,运算结束

0000 0100

0000 0101

----------------

0000 0100    不为0进行第三步

 

#第三步:将与运算的结果,左移一位,  0000 1000

 

#第四步:异或 上一次异或运算的结果和左移的结果做异或运算

0000 0001

0000 1000

----------------

0000 1001

 

#第五步:与运算 上一次异或运算的结果和左移的结果做异或运算

0000 0001

0000 1000

-----------------

0000 0000

#所以最终的结果就是与运算为0的结果的上一个异或运算

 

 

# 计算机是怎么操作的!(4-5)

4+(-5)

负数在计算机中以补码的形式存在 源码的反码加一

0000 0100

0000 0101 --> 1111 1010 --> 1111 1011

 

0000 0100

1111 1011

-----------------(加法:计算机是不会直接加的)

1111 1111      --> ff    1111 1110  1000 0001

 

#计算机的实现原理

#第一步:异或运算(不一样等于1)

0000 0100

1111 1011

----------------

1111 1111

 

#第二步:与运算(都是1等于1) 目的是判断是否有进位,,如果与运算结果为0,则没有进位,运算结束

0000 0100

1111 1011

----------------

0000 0000    不为0进行第三步

 

#所以最终的结果就是与运算为0的结果的上一个异或运算

 

乘法:x*y,就是y个x相加

除法:x/y,本质上就是减法

 

 

 

R进制转十进制使用按权展开法,其具体操作为:将R进制数的每一位数值用R的k次方形式表示,即幂的底数是R,指数的k,k与该位的小数点之间的距离有关(0开始),当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1.

 

例如二进制:10100.01 = 1 * 24 + 0 * 2+ 1 * 22 + 0 * 21 + 0 * 20  + 0 * 2-1 + 1 * 2-2

例如七进制:604.01 = 6 * 72 + 0 * 71 + 4 * 70  + 0 * 7-1 + 1 * 7-2

 

十进制转R进制使用短除法

 

例如将94转换为二进制

2 | 94       余 0

2 | 47       余 1

2 | 23       余 1

2 | 11       余 1

2 | 5         余 1

2 | 2         余 0

2 | 1         除不开 得0余1

逆序排上去

得到结果为 1011110

 

 

二进制转八进制  : 三位三位的转

例如: 10001110 转八进制 →  010  001 110  =  2  1  6

二进制转16进制 : 四位四位的转

例如: 10001110转16进制 → 1000  1110   = 8E

                      

posted @ 2022-02-08 12:52  FY丶  阅读(496)  评论(0)    收藏  举报