vb.net的异或怎么用,vb 异或

vb二进制异或

因为VB本身是不存在“二进制数”这么一种数据类型的,你如果直接算 1000001 XOR 01111111,VB会把1000001和01111111按10进制数来看待的,所以结果是2078214!

目前成都创新互联已为1000+的企业提供了网站建设、域名、虚拟空间、网站托管、企业网站设计、杨浦网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

你应该先把1000001和01111111都转化为10进制数,再来XOR!

补充一下:

VB中16进制数和8进制数有特殊的表示方法,比如:

x = HABCD   '这是16进制

x = O3456    '这是8进制,注意后面的是字母O!

但是,变量x中存储的是经过VB转化后的10进制数,因为VB并没有“16进制数”、“8进制数”这样的数据类型,凡是数值类型(Integer、Long、Double、Single等等)全部是10进制的!

而二进制数则连这样的特殊表示方法也没有,

x = 1000

你说这个1000是二进制还是10进制?总不能说由0和1组成的就是二进制吧?要是你老板要发1000元工资给你,却说这是个二进制数,那么你就只能得到8元钱了!

根据你对题目的补充作出的补充回答:

我不知道是哪个脑残的老师出的题目,两个数进行异或运算,运算结果与这两个数的进制是没有半毛钱关系的,比如:

10进制:20 Xor 30 = 10

16进制:H14 Xor H1E = H0A = 10进制的10

看见没有,结果不是都是10吗?所以你说的“必须用二进制进行异或运算”是错误的,除非是你的脑残老师一定要你们这么做。

所以这条题目最简单的解决办法就是把秘钥01111111转为10进制数(即127),然后用它与大写字母的ASCII码进行异或运算,最后把运算结果再转为字符即可。下面是个例子:

s = "ABCDEFGHIJKLM"

Print "加密前的字符串:"; s

t = ""

For i = 1 To Len(s)

t = t  Chr(Asc(Mid(s, i, 1)) Xor 127)

Next

Print "加密后的字符串:"; t

如果非得按题目要求转为二进制数再来异或,那就复杂10倍也不止了。首先,要把加密前的字符串逐个取出来,转为ASCII码,再转为二进制数(注意,二进制数要放在一个字符串变量中,因为我前面已经说了,VB中没有专门的二进制数类型的,所以如果放在数值变量中,VB会按10进制数来看待的),然后逐位与01111111进行异或运算(就是依次从上述储存二进制数的字符串变量中取出每一位数与01111111对应的位进行异或运算,如果相同就是0,不同就是1),比如:

01000001

01111111

-------------

00111110

把得出的运算结果再转为10进制数(上面例子中就是62),然后通过这个数再得出加密后的字符。你会发现,经过这么复杂运算得到的字符,跟我上面的代码运算的结果其实是一样的!

Vb中有没有位异或,有的话,是哪个运算符

Vb中有位异或,即:

Xor 运算符

用来对两个表达式进行逻辑互斥或运算。

Xor 运算符示例

本示例使用 Xor 运算符来做两个表达式结果的逻辑异或(logical exclusion)。

Dim A, B, C, D, MyCheck

A = 10: B = 8: C = 6: D = Null ' 设置变量初值。

MyCheck = A B Xor B C ' 返回 False。

MyCheck = B A Xor B C ' 返回 True。

MyCheck = B A Xor C B ' 返回 False。

MyCheck = B D Xor A B ' 返回 Null。

MyCheck = A Xor B ' 返回 2(位比较的结果)。

vb中异或运算xor的运算法则怎么回事

Asc("A")是得到字母A的Ascii的值,也就是65。而115 xor 50的得到的是Ascii的值,所以要用msgbox chr(115 xor 50)来把Ascii的值转换成字符!

vb.net中的xor怎么用?

xor表示双重作用,

textstyle = textstyle Xor FontStyle.Italic

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

VB中 drawmode=7 异或笔的概念...求高手赐教

DrawMode 属性:返回或设置一个值,以决定图形方法的输出外观或者 Shape 及 Line 控件的外观。

语法:object.DrawMode [= number]

DrawMode 属性语法包含下面部分:

部分 描述:object 对象表达式,其值是“应用于”列表中的一个对象。

Number 整型值,指定外观,“设置值”中有详细描述。

Private Sub Form_Load

DrawWidth = 10 ' 设置 DrawWidth.

End Sub

Private Sub Form_Click ()

Static M As Integer ' 当前 DrawMode 的设置值.

ForeColor = QBColor(Int(Rnd * 15)) ' 选择一种颜色.

M = ((M + 1) Mod 16) + 1 ' 使 DrawMode 小于或等于 16.

DrawMode = M ' 设置 DrawMode.

扩展资料:

有些属性可以在设计时通过属性窗口来设置,不用编写任何代码;而有些属性则必须通过编写代码,在运行程序的同时进行设置。可以在运行时读取和设置取值的属性成为读写属性,只能读取的属性成为只读属性。

在 Visual Basic.NET程序设计中,对象中还可以包含头,手,腿,脚等部位,其中的每个部位又可以单独作为作为被研究的对象。在 Visual Basic.NET程序设计中,整个应用程序就是一个对象,应用程序中又包含着窗体(Form),命令按钮(Command),菜单(Menu)等对象。

参考资料来源:百度百科-Visual Basic

VB对字符串的异或

Option Explicit

Private Const strEncryption As String = "aa" 'XOR加密/解密函数

Public Function XOREncryption(ByVal vstrDataIn As String, Optional ByVal vstrCodeKey As String = "") As String

Dim lonDataPtr As Long

Dim intXORValue1 As Integer

Dim intXORValue2 As Integer

Dim strDataOut As String

If Len(vstrCodeKey) 2 Then

vstrCodeKey = strEncryption

End If

Mid(vstrCodeKey, 2, 1) = Chr(1)

For lonDataPtr = 1 To Len(vstrDataIn)

'第一个XOR的值来自加密字符串

intXORValue1 = Asc(Mid$(vstrDataIn, lonDataPtr, 1))

'第二个XOR的值来自需要加密的数据(字符串)

intXORValue2 = Asc(Mid$(vstrCodeKey, ((lonDataPtr Mod Len(vstrCodeKey)) + 1), 1))

'两个值被XOR后成为一个需要被解密的字符

strDataOut = strDataOut + Chr(intXORValue1 Xor intXORValue2)

Next lonDataPtr

'返回被加密/解密后的数据(是一个字符串)

XOREncryption = strDataOut

End Function

Private Sub Command1_Click()

Dim a As String

a = XOREncryption("abc")

Print "加密后字符为:" a

Print "还原字符:" XOREncryption(a)

End Sub


本文名称:vb.net的异或怎么用,vb 异或
文章来源:http://cdiso.cn/article/dsciogi.html

其他资讯