计算机实现加减乘除
# 计算机是怎么操作的!(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 * 23 + 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

浙公网安备 33010602011771号