189 8069 5689

异或和校验vb.net 异或和校验matlab

和校验异或校验哪个更好

和校验好。

创新互联建站主营内江网站建设的网络公司,主营网站建设方案,app软件定制开发,内江h5重庆小程序开发搭建,内江网站营销推广欢迎内江等地区企业咨询

和校验又称累加和校验。和校验按每个字节,计算累加和。异或校验定义初值,按每个字节异或,求结果。异或校验又称异或和校验或者BCC校验。BCCcheck是比较常用的串口数据校验。检验和的概念一般体现在8bit长度的字符数组。注意异或校验是异或运算,需要先强制把字符转换成整形数据。

校验,是一个数学术语,是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。分析国内外对校验的用法,其含意基本相同,它与检定和校准均有一定联系又有明显区别。它不具有法制性与校准相同,它在技术操作内容上又与检定有共性,一般可进行校准,也可以对其它有关性能进行规定的检验,并最终给出合格性的结论。这一术语有时是很必要的,建议在有关术语定义中应当给校验一个正式的位置,以统一和规范其使用。

求一个VB编的串口通讯用的异或XOR校验程序(或函数)

Private Sub cmdSendHex_Click() '16进制发送

Dim sj() As Byte

Dim sj_Txt As String

Dim i As Integer

sj_Txt = TxtSend

If Len(TxtSend) Mod 2 = 0 And Len(TxtSend)  0 Then '检验16进制字符串长

ReDim sj(Len(sj_Txt) / 2 - 1)

For i = 0 To Len(sj_Txt) - 1 Step 2

sj(i / 2) = Val("H"  Mid(sj_Txt, i + 1, 2))

Next

Print Hex(sj(0) Xor sj(1) Xor sj(2))

Else

MsgBox ("格式不对!")

End If

Text1 = TxtSend  Right("0"  Hex(sj(0) Xor sj(1) Xor sj(2)), 2)

End Sub

Private Sub Form_Load()

TxtSend = "010308"

注意,LZ的另一问帖,我已经做了回复.

vb.net单字符异或遇到溢出

改成:

For i As Integer = 0 To buffer.Length - 1

checksum = checksum Xor Asc(buffer(i))

Next

vb如何实现CRC12校验

异或在计算机二进制运算中是一种常用运算,最常见于数据的简单加密。 它的运算规则是这样的,两组数据对位后进行比较——相同,即同为0或同为1,输出0;不同,输出1。 看下面的例子,你会掌握异或运算:(第一组数据) :0011 0011 0011 0011(第二组数据) :0000 1111 0011 1100(异或运算结果):0011 1100 0000 1111 ————————————————————————————————————我们先把校验对象(31 30 34 32 H)划成二进制:0011 0001 0011 0000 0011 0100 0011 0010 把校验多项式(18 0D H)划成二进制:0001 1000 0000 1101 据CRC12校验规则,被除数为校验对象后加12个“0”,除数为校验多项式,运算时以高位对齐。以下使用计算法对校验对象进行CRC12校验。在每次计算前,高位去零,一直计算到被除数位数少于除数位数时停止。 计算过程:校验对象: 0011 0001 0011 0000 0011 0100 0011 0010被除数 →  0011 0001 0011 0000 0011 0100 0011 0010 0000 0000 0000校验多项式:0001 1000 0000 1101除数  →  1 1000 0000 1101 高位去零,对齐后进行异或运算: 110001001100000011010000110010000000000000

/1100000001101

=000001001010100011010000110010000000000000(高位去零,再次运算) 1001010100011010000110010000000000000

/1100000001101

=0101010101110010000110010000000000000(高位去零,再次运算) 101010101110010000110010000000000000

/1100000001101

=011010101000110000110010000000000000(高位去零,再次运算) 11010101000110000110010000000000000

/1100000001101

=00010101011100000110010000000000000(高位去零,再次运算) 10101011100000110010000000000000

/1100000001101

=01101011111010110010000000000000(高位去零,再次运算) 1101011111010110010000000000000

/1100000001101

=0001011110111110010000000000000(高位去零,再次运算) 1011110111110010000000000000

/1100000001101

=0111110110011010000000000000(高位去零,再次运算) 111110110011010000000000000

/1100000001101

=001110110101110000000000000(高位去零,再次运算) 1110110101110000000000000

/1100000001101

=0010110100011000000000000(高位去零,再次运算) 10110100011000000000000

/1100000001101

=01110100000010000000000(高位去零,再次运算) 1110100000010000000000

/1100000001101

=0010100001111000000000(高位去零,再次运算) 10100001111000000000

/1100000001101

=01100001100010000000(高位去零,再次运算) 1100001100010000000

/1100000001101

=0000001101111000000(高位去零,再次运算) 1101111000000

/1100000001101

=0001111001101(高位去零,符合终止条件)=1111001101 所以,CRC12校验结果:11 1100 1101 →(十六进制)→ 3CDH————————————————————————————————————看你自己能不能理解,CRC12校验类模块写好了再给你发过去。

vb.net中的xor怎么用?

xor表示双重作用,

textstyle = textstyle Xor FontStyle.Italic

就是说,在原来的基础上实现双重功能结合,比如你原来的字体是 加粗的,在运行这句语句后,就实验了加粗和倾斜的功能了,如果不用xor,实现就很麻烦了

请问什么是异或校验?

异或校验算法(又称为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;isizeof(data);i++)

{

out^=data;

}

printf("原来的校验值:%X\n",out);

out^=(data[0]^0xee);//将data[0]改为新数据后计算新校验和的方法

out^=(data[5]^0x20);//将data[5]改为新数据后计算新校验和的方法

printf("修改后校验值:%X\n",out);

data[0]=0xee; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确

data[5]=0x20; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确

out=0x00;

for (i=0;i10;i++)

{

out^=data;

}

printf("原始方法得出校验值:%X\n",out);

}

作用:

防止自己的程序被篡改。

有些可执行程序,当被改了资源时再运行会有文件已损坏的提示,这就是使用了数据校验。本例是用md5做为数据校验的算法。当然你可以使用个性化的比如des作为数字签名,那样安全性更高。

扩展资料:

最简单的检验

实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。

应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。

奇偶校验Parity Check

实现方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。

应用例子:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。

md5校验和数字签名

实现方法:主要有md5和des算法。

适用范围:数据比较大或要求比较高的场合。如md5用于大量数据、文件校验,des用于保

密数据的校验(数字签名)等等。

应用例子:文件校验、银行系统的交易数据

参考资料:百度百科-数据校验


当前文章:异或和校验vb.net 异或和校验matlab
分享地址:http://cdxtjz.cn/article/hghgej.html

其他资讯