模2加法,模2减法,模2除法

十进制的除法,大家都会做:列个竖式,商,写在上面,上个几,再用被除数减去积,求得余数…。

二进制的除法,和十进制的计算方法相同,也要列出个竖式计算。

二进制的除法,还有一种“模2除”,很多人就不熟悉了,甚至连“百度百科”中,也写不清楚这个概念和方法。此外还有:“模2和”、“模2减”等等。

二进制数字的计算,很有特点。

两个二进制数字的相加,如果不考虑进位,就是“模2和”;

两个二进制数字的相减,如果不考虑借位,就是“模2减”。

“模2和”、“模2减”,名称、算法虽然不一样,但是,结果是相同的,实际上都是两个二进制数字相“异或”。

如果两个二进制数字相同,“异或”的结果就是0;

如果两个二进制数字不同,“异或”的结果就是1。

“模2除”就是在求余数的时候,应用了“模2减”。

下图就是“二进制的除法”和“模2除”的计算过程竖式:

在这里插入图片描述

在“模2除”中,因为使用了“模2减”,所以在商上1的时候,不要考虑够不够减(因为这里不是二进制的除法),只要最高位是1,位数凑够了四位,就可以用它“模2减”1001。

“模2除”在“循环冗余校验(CRC)”中,有广泛的应用。

关于这方面的应用,以后再详细介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Unit Testing》2.1 伦敦学派如何做隔离

针对单元测试的定义,主要有两种看法:经典学派。经典学派之所以经典,是因为这原本就是人们做单元测试和测试驱动开发的方式伦敦学派。伦敦学派扎根于伦敦的编程社区。单元测试的定义单元测试有很多定义,但是所有的定义都有三个重要…

找出第i个小元素(算法导论第三版9.2-4题)

找出第i个小元素(算法导论第三版9.2-4题) 期望时间复杂度:Θ(n) 最坏情况的时间复杂度Θ(n^2) int randomized_select_based_loop(int *array,int start,int end,int index) {while (true){if(start end)return array[start];int middle randomized_partition(a…

C++实现数组模拟链表(实现链表的增删功能)

代码如下: #include <iostream> using namespace std; const int N 100;struct Node {int data;int next; };class ArrayList { private:Node node[N];int maxSize;//数组容量int idx;//接下来要插入的结点的下标int len;//链表长度public:void initList(){node[0].nex…

Gartner:容器采用将迅速增长,但不会很快有利可图

导语容器的未来可期&#xff0c;到2024年&#xff0c;所有应用程序中的15&#xff05;将在容器中运行&#xff0c;而这一数据今天仅为5&#xff05;&#xff0c;但当前变现还比较难。正文近日&#xff0c;Gartner公司发表其首次为软件容器管理软件和服务市场做的预测。Gartner说…

快速排序在最坏的情况下时间复杂度(Ω(nlgn)(算法导论第三版9.3-3))

快速排序在最坏的情况下时间复杂度Ω(nlgn) 1⃣️在元素各异时或者少量相等&#xff08;元素个数n>70) 时间复杂度Ω(nlgn) void quick_sort_by_median(int *array,int start,int end) {if(start<end){int median select(array,start,end,(end - start 1)/2 (end - …

线性表的定义与操作-顺序表,链式表(C语言)

顺序表: typedef int Position; typedef struct LNode *List; struct LNode {ElementType Data[MAXSIZE];Position Last; };/* 初始化 */ List MakeEmpty() {List L;L (List)malloc(sizeof(struct LNode));L->Last -1;return L; }/* 查找 */ #define ERROR -1Position Fi…

【Azure Show】|第三期 人工智能大咖与您分享!嘉宾陈海平胡浩陈堰平

欢迎来到Azure Show!Azure ShowHello,大家好&#xff0c;又来到新的一期的Azure Show!本期是人工智能专场&#xff0c;我们邀请到微软Data&AI的解决方案架构师陈堰平&#xff0c;Tensorflow.NET 作者陈海平&#xff0c;还有微软人工智能方向最有价值专家胡浩和大家分享人工…

确定S中最接近中位数的k个元素(算法导论第三版9.3-7)

确定S中最接近中位数的k个元素 &#xff08;算法导论第三版9.3-7题&#xff09; 时间复杂度O(n) vector<int> k_elements_closest_to_median(int *array,int start,int end,int k) {vector<int> result;int median select(array,start,end,(end - start 1)/2 …

深入探究ASP.NET Core异常处理中间件

前言全局异常处理是我们编程过程中不可或缺的重要环节。有了全局异常处理机制给我们带来了很多便捷&#xff0c;首先我们不用满屏幕处理程序可能出现的异常&#xff0c;其次我们可以对异常进行统一的处理&#xff0c;比如收集异常信息或者返回统一的格式等等。ASP.NET Core为我…

找出有序数组X和Y中所有元素的中位数(X,Y分别含n个元素)(算法导论第三版9.3-8)

找出有序数组X和Y中所有元素的中位数&#xff08;X&#xff0c;Y分别含n个元素&#xff09; &#xff08;算法导论第三版9.3-8&#xff09; 时间复杂度O&#xff08;lgn&#xff09; int find_median_two_ordered_arrays(int *array_a,int *array_b,int length) {int a_start…

有序序列中的i个最大数(算法导论思考题9-1)

有序序列中的i个最大数 &#xff08;算法导论思考题9-1&#xff09; a 时间复杂度O(nlgni) //总共时间复杂度O(nlgni) vector<int> i_largest_number_in_ordered_sequence_a(int *array,int length,int i){vector<int>result;//时间复杂度O(nlgn)quick_sort_by_m…

.NET Core加解密实战系列之——消息摘要与数字签名算法

简介加解密现状&#xff0c;编写此系列文章的背景&#xff1a;需要考虑系统环境兼容性问题&#xff08;Linux、Windows&#xff09;语言互通问题&#xff08;如C#、Java等&#xff09;&#xff08;加解密本质上没有语言之分&#xff0c;所以原则上不存在互通性问题&#xff09;…

堆栈的定义与操作-顺序存储,链式存储(C语言)

顺序存储&#xff1a; typedef int Position; struct SNode {ElementType *Data; /* 存储元素的数组 */Position Top; /* 栈顶指针 */int MaxSize; /* 堆栈最大容量 */ }; typedef struct SNode *Stack;Stack CreateStack( int MaxSize ) {Stack S (Stack)malloc(…

快速排序和选择模版类

快速排序和选择模版类 template<typename T> void insert_sort(T *array,int start,int end) {for (int i start 1; i < end 1; i) {int j i - 1 ;T key array[i];while (j > start && key < array[j]){array[j1] array[j];j--;}array[j1] key…

造轮子-AgileConfig一个基于.NetCore开发的轻量级配置中心

微服务确实是行业的一个趋势&#xff0c;我自己也在把一些项目往微服务架构迁移。玩微服务架构配置中心是一个绕不过去的东西&#xff0c;有很多大牌的组件可以选&#xff0c;比如spring-cloud-config&#xff0c;apoll&#xff0c;disconf等等。而我为什么还要造一个轮子呢&am…

队列的定义与操作-顺序存储,链式存储(C语言)

顺序存储&#xff1a; typedef int Position; struct QNode {ElementType *Data; /* 存储元素的数组 */Position Front, Rear; /* 队列的头、尾指针 */int MaxSize; /* 队列最大容量 */ }; typedef struct QNode *Queue;Queue CreateQueue( int MaxSize ) {Que…

带权中位数-算法导论第三版第九章思考题9-2

带权中位数-算法导论第三版第九章思考题9-2 b 时间复杂度O(nlgn) float find_median_with_weights_b(float *array,int length) {quick_sort<float>(array,0,length-1);float sum 0;int index 0;while (sum < 0.5){sum array[index];index;}return array[index-1…

SQL Server 分页+json分享

1。SQL Server 版本2012 新增SQL分页的写法最近封装一个轻量级的ORM用到了分页&#xff0c;以前只知道使用Row_Number函数&#xff0c;现在发现sqlserver 新增的 {orderBy} offset {start} rows fetch next {pageSize} rows only 也挺好用的。简单回顾下 sqlserver 各个版本支持…

二叉树的存储结构及四种遍历(C语言)

二叉树的存储结构: typedef struct TNode *Position; typedef Position BinTree; /* 二叉树类型 */ struct TNode{ /* 树结点定义 */ElementType Data; /* 结点数据 */BinTree Left; /* 指向左子树 */BinTree Right; /* 指向右子树 */ };二叉树的四种遍历: void Inord…

Stack(栈 c++模版实现)

Stack(栈 c模版实现&#xff09; // // Created by XXX on 2021/7/10. //#ifndef C11LEARN_STACK_H #define C11LEARN_STACK_H template<typename T> class Stack{ private:int capacity;int top;T *array; public:Stack(int capacity 50);Stack(const Stack<T>&…