一、乘法运算
如果想做乘法运算,首先应该有一个被乘数寄存器还有个乘数寄存器。n个数*n个数最后结果是2n个数。
无符号整数的乘法
无符号整数乘法,首先把乘积寄存器P至0,Y放上乘数,然后根据乘数的最后一位来判断,如果最后一位是1那么add,然后右移。如果是0那么只右移动。最后肯定又移。需要有一个进位寄存器。
无符号:若高n位全0,则不溢出,否则溢出
原码的乘法
和上面一样,不过就是需要判读符号位。
补码的乘法
带符号:若高n位全0或全1且等于低n位的最高位,则不溢出。
原码乘法和无符号整数的硬件一致。补码和他们硬件线路不一致。
Booth 算法描述如下:
- 乘数与被乘数均用补码表示,连同符号位一起参加运算;运算结果(乘积)也是补码。
- 乘数最低位后增加一个附加位(可用A-1表示),初始设定为0。
- 从附加位开始,按上表总共进行n次加操作、n-1次右移操作(最后一次不右移)。
- 右移按补码规则进行,即符号位复制。
原码最后一次要右移,补码最后一次不用移动。
二、除法运算
无符号整数、原码的除法
被除数必须大于除数,在被除数前面补0,补成2n。然后先逻辑左移一位,然后减Y。“正 1 减”、“负 0 加”
补码的除法
前面补一个符号位,和补码乘法一样。先比较被除数与除数的符号。
总结:原码乘法新增一个符号位、补码乘法新增一个符号位和一个注记位、原码除法新增两个符号位、补码除法新增一个符号位。
二、浮点数运算
1.浮点数的加减法
首先需要对阶,将小的变成大的,然后右归。右归多少呢?需要用两个移码进行相减,出来补码,然后进行右归。右归的时候需要考虑尾数前面的1,然后面有3个附加位,所以真正运算的时候是23(尾数)+3(符号位)。小数点前面需要加溢出位。例子如下。原码加减的时候小数点不变。
1.浮点数的乘除法
1.引入库
代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。