“与”、“或”、“异或”三种字节逻辑操作指令,分别有什么作用?

请问什么是异或校验?~

异或校验算法(又称为BCC校验)
下面就是异或校验的算法,多用于串口通信:
#include "stdio.h"
void main()
{
int i;
//任意10个数值,也可以不是8位
unsigned char data[10]={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD};
unsigned char out;//用于保存异或结果
out=0x00;
for (i=0;i<sizeof(data);i++)
{
out^=data;
}
printf("原来的校验值:%X
",out);
out^=(data[0]^0xee);//将data[0]改为新数据后计算新校验和的方法
out^=(data[5]^0x20);//将data[5]改为新数据后计算新校验和的方法
printf("修改后校验值:%X
",out);
data[0]=0xee; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确
data[5]=0x20; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确
out=0x00;
for (i=0;i<10;i++)
{
out^=data;
}
printf("原始方法得出校验值:%X
",out);
}
作用:
防止自己的程序被篡改。
有些可执行程序,当被改了资源时再运行会有文件已损坏的提示,这就是使用了数据校验。本例是用md5做为数据校验的算法。当然你可以使用个性化的比如des作为数字签名,那样安全性更高。

扩展资料:
最简单的检验
实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。
应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。
奇偶校验Parity Check
实现方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。
应用例子:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。
md5校验和数字签名
实现方法:主要有md5和des算法。
适用范围:数据比较大或要求比较高的场合。如md5用于大量数据、文件校验,des用于保
密数据的校验(数字签名)等等。
应用例子:文件校验、银行系统的交易数据
参考资料:百度百科-数据校验

“所有各字节的模256的和,即各字节二进制算术和”说的挺清楚的,模是256,不考虑大于等于256时候的进位,只做8位的算数加法。

与:0与上任何值结果都为0
或:1或上任何值结果都为1
异或:相同值异或操作结果为0, 不同值异或结果为1

单片机中的逻辑运算怎么算的?
答:“或”运算是实现“只要其中之一有, 就有”这种逻辑关系的一种运算, 其运算符为“+”。 “或”运算规则如下:0+0=0,0+1=1,1+0=1,1+1=1;3、“非”运算 “非”运算是实现“求反”这种逻辑的一种运算,如变量A的“非”运算记作 ¬ 。 其运算规则如下:4、“异或”运算 “...

与、或、异或的区别是什么?
答:按位相或和相与,没有进位。 相或运算:在给定的逻辑变量中,只要有一个为1,两个二进制数相或的结果就为1。只有两者都为0时,两个二进制数相或的结果为1。二进制的逐位相与是 编程语言中常用二进制的逐位相与是&判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,...

逻辑运算中异或运算、与运算、或运算的优先级是?
答:1级、非运算 “!”2级、与位运算 “&”,比如 A && B&C 等于 A && (B&C)3级、异或运算 “^”4级、或运算 “|”5级、逻辑与运算 "&&"6级、逻辑或运算 “||”结语:虽然使用运算优先规则能去区分表达式运算顺序,在编写表达式的时候,为了便于清晰的阅读,还是建议使用()来划分优先级。

c语言中同或、异或怎么表示
答:3、“或运算”特殊作用:(1)常用来对一个数据的某些位置1。找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。三、异或运算(^)1、概念:参加运算的两个数据,按二...

在单片机中“逻辑与、或、异或操作”是什么意思?
答:与: 两个二进制位相与。 规则:前后都为1的时候为真,其他都为假。 符号记录为^ 1^1=1 1^0=0 0^1=0 0^0=0 或:两个二进制位相或。规则:前后只要有一个为1的时候就为真。 符号记录为V 1V1=1 1V0=1 0V1=1 0V0=0异或:两个二进制位异或。规则前后只要不相同就为真...

什么是"逻辑或";"逻辑非";"逻辑与"
答:“逻辑或”相当于生活中的“或者”,当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真””逻辑非“就是指本来值的反 逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式。逻辑运算符有4个,它们分别是: !(逻辑非)、 ||(逻辑或)、&&(逻辑与) ^(异或)。

与或异或逻辑运算符有哪些规则?
答:若参与运算的一个是矩阵,另一个是标量,则是矩阵中每个元素与该标量进行逻辑运算,最终产生一个同维数矩阵,其元素值为“0”或“1” 。逻辑异或运算法则1、a ⊕ a = 0 2、a ⊕ b = b ⊕ a 3、a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;4、d = a ⊕ b ⊕ c ...

与或非、异或逻辑运算
答:在深入学习的道路上,我重新审视了与或非、异或逻辑运算这一基础概念,它们是编程世界中的逻辑基石,让我们一起探索这些神秘的二进制世界吧!与运算(AND)想象一下,这就像两个开关同时打开才能点亮灯泡。在二进制中,我们用0代表关闭,1代表打开。两个and运算的规则是:只有当两个输入都是1时,结果才...

计算机中与,或,非,异或是怎么运算的???
答:英文为exclusive OR,或缩写成xor。5、异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。

在线计算器上的与、或、非、异或等逻辑运算键如何使用?
答:or运算(或)or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。3.xor运算(异或)异或的符号是⊕。xor运算通常用于对二进制的特定一位进行取...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网