文章目录
- 模2除法需要用到模2加减法,关于模2加减法,其实就是异或操作,规则如下: //不需要考虑进位和借位 0 ± 0 = 0 1 ± 1 = 0 0 ± 1 = 1 1 ± 0 = 1 例: 1101 ± 1001 = 0100 计算如下: 1 1 0 1 ± 1 0 0 1 ———– 0 1 0 0 Jetbrains全家桶1年46,售后保障稳定 简记:同为0,异为1
- 规则:假设被除数X,和除数P,余数R X除以P(对X和P做模2加减法),当前X首位为1时,商1,为0时商0 所得余数R去除首位(即左移一位): 若R第一位为0,将其作为新的被除数,除以0,此时其首位为0,商即为0 若R第一位为1,将其作为新的被除数,除以P,此时其首位为1,商即为1 重复第2步直到R位数少于P位数
-
- 1 0 1 1 //商 ————— 1 1 1 1 0 0 0 //被除数,注意首位为1 1 1 0 1 //被除数首位为1,除以除数 ————— 0 1 0 0 0 0 //余数去除首位,作为新的被除数 0 0 0 0 //被除数首位为0,除以0 ————— 1 0 0 0 0 //余数去除首位,作为新的被除数 1 1 0 1 //被除数首位为1,除以除数 ————— 1 0 1 0 //余数去除首位,作为新的被除数 1 1 0 1 //被除数首位为1,除以除数 ————— 1 1 1 //余数,此时余数位数少于除数,不能继续除了
-
- 1 //商 ————- 1 1 1 1 0 0 0 //被除数,注意首位为1 1 1 0 1 //除数 ————- 0 0 1 0 0 0 0 //余数,模2运算后结果 商的第一位:被除数首位为1,商为1(只要被除数首位非0,商就是1)
- 1 0 //商 ————— 0 1 0 0 0 0 //余数去除首位,作为新的被除数 0 0 0 0 //被除数首位为0,除以0 ————— 0 1 0 0 0 0 //余数,模2运算后结果 商的第二位:被除数首位为0,商为0(只要被除数首位是0商就是0)
- 1 0 1 //商 —————- 1 0 0 0 0 //余数去除首位,作为新的被除数 1 1 0 1 //被除数首位为1,除以除数 —————- 0 1 0 1 0 //余数,模2运算后结果 商的第三位:被除数首位为1,商为1
- 1 0 1 1 //商 —————- 1 0 1 0 //余数去除首位,作为新的被除数 1 1 0 1 //被除数首位为1,除以除数 —————- 0 1 1 1 //余数,此时余数位数(这里的0要忽略掉,不参与下一轮,因为最上面的被除数后面 //没有数可以给这里往后补一位了)少于除数位数,不能继续除了 商的第四位:被除数首位为1,商为1 此时不能继续做除法,计算结束
大家好,又见面了,我是你们的朋友风君子。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
鉴于网上的讲解自己好不容易才看懂…所以整理了一下, 也方便大家能够理解
模2除法需要用到模2加减法,关于模2加减法,其实就是异或操作,规则如下:
//不需要考虑进位和借位
0 ± 0 = 0
1 ± 1 = 0
0 ± 1 = 1
1 ± 0 = 1
例: 1101 ± 1001 = 0100
计算如下:
1 1 0 1
± 1 0 0 1
-----------
0 1 0 0
Jetbrains全家桶1年46,售后保障稳定
简记:同为0,异为1
规则:假设被除数X,和除数P,余数R
-
X除以P(对X和P做模2加减法),当前X首位为1时,商1,为0时商0
-
所得余数R去除首位(即左移一位):
若R第一位为0,将其作为新的被除数,除以0,此时其首位为0,商即为0
若R第一位为1,将其作为新的被除数,除以P,此时其首位为1,商即为1 -
重复第2步直到R位数少于P位数
1 0 1 1 //商
---------------
1 1 1 1 0 0 0 //被除数,注意首位为1
1 1 0 1 //被除数首位为1,除以除数
---------------
0 1 0 0 0 0 //余数去除首位,作为新的被除数
0 0 0 0 //被除数首位为0,除以0
---------------
1 0 0 0 0 //余数去除首位,作为新的被除数
1 1 0 1 //被除数首位为1,除以除数
---------------
1 0 1 0 //余数去除首位,作为新的被除数
1 1 0 1 //被除数首位为1,除以除数
---------------
1 1 1 //余数,此时余数位数少于除数,不能继续除了
1 0 1 1 //商
---------------
1 1 1 1 0 0 0 //被除数,注意首位为1
1 1 0 1 //被除数首位为1,除以除数
---------------
0 1 0 0 0 0 //余数去除首位,作为新的被除数
0 0 0 0 //被除数首位为0,除以0
---------------
1 0 0 0 0 //余数去除首位,作为新的被除数
1 1 0 1 //被除数首位为1,除以除数
---------------
1 0 1 0 //余数去除首位,作为新的被除数
1 1 0 1 //被除数首位为1,除以除数
---------------
1 1 1 //余数,此时余数位数少于除数,不能继续除了
1 //商
-------------
1 1 1 1 0 0 0 //被除数,注意首位为1
1 1 0 1 //除数
-------------
0 0 1 0 0 0 0 //余数,模2运算后结果
商的第一位:被除数首位为1,商为1(只要被除数首位非0,商就是1)
1 //商
-------------
1 1 1 1 0 0 0 //被除数,注意首位为1
1 1 0 1 //除数
-------------
0 0 1 0 0 0 0 //余数,模2运算后结果
商的第一位:被除数首位为1,商为1(只要被除数首位非0,商就是1)
1 0 //商
---------------
0 1 0 0 0 0 //余数去除首位,作为新的被除数
0 0 0 0 //被除数首位为0,除以0
---------------
0 1 0 0 0 0 //余数,模2运算后结果
商的第二位:被除数首位为0,商为0(只要被除数首位是0商就是0)
1 0 //商
---------------
0 1 0 0 0 0 //余数去除首位,作为新的被除数
0 0 0 0 //被除数首位为0,除以0
---------------
0 1 0 0 0 0 //余数,模2运算后结果
商的第二位:被除数首位为0,商为0(只要被除数首位是0商就是0)
1 0 1 //商
----------------
1 0 0 0 0 //余数去除首位,作为新的被除数
1 1 0 1 //被除数首位为1,除以除数
----------------
0 1 0 1 0 //余数,模2运算后结果
商的第三位:被除数首位为1,商为1
1 0 1 //商
----------------
1 0 0 0 0 //余数去除首位,作为新的被除数
1 1 0 1 //被除数首位为1,除以除数
----------------
0 1 0 1 0 //余数,模2运算后结果
商的第三位:被除数首位为1,商为1
1 0 1 1 //商
----------------
1 0 1 0 //余数去除首位,作为新的被除数
1 1 0 1 //被除数首位为1,除以除数
----------------
0 1 1 1 //余数,此时余数位数(这里的0要忽略掉,不参与下一轮,因为最上面的被除数后面
//没有数可以给这里往后补一位了)少于除数位数,不能继续除了
商的第四位:被除数首位为1,商为1
此时不能继续做除法,计算结束
1 0 1 1 //商
----------------
1 0 1 0 //余数去除首位,作为新的被除数
1 1 0 1 //被除数首位为1,除以除数
----------------
0 1 1 1 //余数,此时余数位数(这里的0要忽略掉,不参与下一轮,因为最上面的被除数后面
//没有数可以给这里往后补一位了)少于除数位数,不能继续除了
商的第四位:被除数首位为1,商为1
此时不能继续做除法,计算结束
发表回复