查看: 2374|回复: 4
收起左侧

[其他] 关于xor运算

[复制链接]
暗夜死灵
发表于 2016-11-13 11:53:36 | 显示全部楼层 |阅读模式
在excel填上2164849046,然后导入数据,在MDB里面却显示-2130118250,从MDB导出的数据也显示-2130118250,导致查找很不方便。

在问度娘后,得知MDB里面2164849046是超出了范围,-2130118250是2164849046 xor的数值。
2164849046 xor 0 = -2130118250

请问如何将-2130118250 xor 回2164849046这个数值?
-2130118250 xor ? = 2164849046

网上找了很多
1例
x xor y = z ,基于以上 z xor y = x
理论上是这个样,但实际上明显是不行,感觉被忽悠成加减乘除法了。

2例
明文 xor 密文 = 加密后的文
明文 xor 密文 xor 密文 = 明文
也是不行,都知道是明文,还xor两次
fireherman
发表于 2016-11-14 01:36:39 | 显示全部楼层
本帖最后由 fireherman 于 2016-11-14 01:40 编辑



XOR是【逻辑运算符】,根据我那个年代久远的记忆……

【逻辑运算符】和【关系运算符】同样只有【真/Ture】和【假/False】两个结果:

【算术运算符】:+ - × ÷

【关系运算符】:> < ≥ ≤

【逻辑运算符】:NOT AND OR XOR EQW IMP

-2147483648 ~ 2164849047 是长整型数值(Long Int)

用十六进制表达:&h00000000 FFFFFFFF
二进制:
0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111
XOR 0后得到:
1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000

那么,最简单的方式还原:
1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000
XOR 1应该就是(还是XOR -1):
0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111



很多年没碰过VB了,希望答案是对的,能帮到你;如果是错的,也请不要大脸。

暗夜死灵
 楼主| 发表于 2016-11-14 18:18:24 | 显示全部楼层
fireherman 发表于 2016-11-14 01:36
XOR是【逻辑运算符】,根据我那个年代久远的记忆……

【逻辑运算符】和【关系运算符】同样只 ...

MDB显示是长整型数值

x xor y = z
不明白为什么X能在十进制的情况下能直接xor成Z,而Y是0值

z bin xor y bin = x bin
而要把Z还原为X,就要先把Z二进制,然后Y是11111111111111111111111111111100,才能还原为X的二进制。
这个Y的十进制是0,Y的二进制数值是怎么得来的。
fireherman
发表于 2016-11-14 19:02:26 | 显示全部楼层
本帖最后由 fireherman 于 2016-11-14 19:03 编辑
暗夜死灵 发表于 2016-11-14 18:18
MDB显示是长整型数值

x xor y = z




据我所知,这条表达式里,Y应该是逻辑值(0/假,-1/真)

那么

x XOR y = z

z XOR -y =x

应该就是这样吧?

暗夜死灵
 楼主| 发表于 2016-11-14 20:01:24 | 显示全部楼层
fireherman 发表于 2016-11-14 19:02
据我所知,这条表达式里,Y应该是逻辑值(0/假,-1/真)

那么

理论上的话应该是这个样,但我就是有两个问题不明白,1用z xor y=x,回xor时为什么转二进制,2这样计算时,Y的二进制值是怎么来的……。
第二个我觉得很重要。
2164849046用VB xor结果是溢出,但是用某些计算软件却不会,显示为-2130118250。
我头都晕了,姑娘家还告诉我有几十条这样的信息,然后我用计算软件回算的时候,这Y的值是不固定的.
2164849046 xor后回xor ,Y的值就是11111111111111111111111111111100,
而2164872644 xor 后回xor ,Y的值就是11111111111111111111111111111000,
就是倒数第三个数不同。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-30 13:38 , Processed in 0.124967 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表