Floating point 运算符XOR和浮点变量

Floating point 运算符XOR和浮点变量,floating-point,vb6,xor,Floating Point,Vb6,Xor,我决定制作一个有趣的密码程序供个人使用。 我想对浮点(单)变量进行加密 但是,当然,它不起作用 好吧,整数值工作正常,但单数值不能。我丢失了所有的逗号和精度。 我尝试注入ASM代码,但没有成功。 你知道有什么方法可以让它正常工作吗 Dim MyData as Single, MyKey as Single 'Long didnt work too MyData = 0.0017627 Key = 17.1278 MyData = MyData XOR Key 'After this I l

我决定制作一个有趣的密码程序供个人使用。 我想对浮点(单)变量进行加密

但是,当然,它不起作用

好吧,整数值工作正常,但单数值不能。我丢失了所有的逗号和精度。 我尝试注入ASM代码,但没有成功。 你知道有什么方法可以让它正常工作吗

Dim MyData as Single, MyKey as Single 'Long didnt work too

MyData = 0.0017627
Key = 17.1278

MyData = MyData XOR Key

'After this I lost my data!
MyData = MyData XOR Key
可以说“使用C++,不使用大脑”,但我更喜欢使用VB6。
哦,如果VB.NET中有什么有用的东西,我可以把它安装在我2010年的新笔记本上。

虽然VB6文档说明了异或运算符需要数字变量(),但它实际上意味着整数或长变量

由于运算符正在执行到整数类型的转换,因此正在丢失
单个
的精度,基本上如下所示:

MyData = CLng(MyData) Xor CLng(Key)
如果您
Xor
一个带0的浮点值,它将保留运算符使用的位模式(隐式整数转换后),则可以更好地看到这一点

Debug.Print 0 Xor 45.2     ' result: 45
Debug.Print 0 Xor 45.7     ' result: 46  (rounds up)