vb的加密算法中and &HFFFF是什么意思
vb加密程序中取得的值and&HFFFF是什么意思。好像and&HFFFF之前和and&HFFFF之后是一样的啊。代码如下,取得用户输入的种子数:PublicProper...
vb加密程序中取得的值and &HFFFF是什么意思。好像and &HFFFF之前和and &HFFFF之后是一样的啊。
代码如下,取得用户输入的种子数:
Public Property Let Seed(val As Long)
mSeed=(val and &HFFFF)
End Property
做了测试,与字节数也没有关系,mSeed取值999999999都没有问题,并没有把mSeed的取值限制在0到&HFFFF之间。
我是想知道and &HFFFF的具体目的是什么?不加这句行不行? 展开
代码如下,取得用户输入的种子数:
Public Property Let Seed(val As Long)
mSeed=(val and &HFFFF)
End Property
做了测试,与字节数也没有关系,mSeed取值999999999都没有问题,并没有把mSeed的取值限制在0到&HFFFF之间。
我是想知道and &HFFFF的具体目的是什么?不加这句行不行? 展开
展开全部
val是Long型的,可能是很大的数。
val and &HFFFF取它的低2字节,即把mSeed的取值限制在0到&HFFFF(十进制为65535)之间。
补充:能把你测试的代码发一下吗?你是改的val进行测试还是直接改的mSeed?
仅从代码上看,这句的意思就是和我们回答的一样,取val的低2字节(0~65535)放入mSeed。不知道你的完整加密代码是什么样的,有可能加密算法对mSeed的取值范围有要求,因此是必须加上的。
至于为什么测试结果与我们的答案不同,我现在不方便自己开VB进行测试,希望你能提供测试代码再来确定最终的原因是什么。
val and &HFFFF取它的低2字节,即把mSeed的取值限制在0到&HFFFF(十进制为65535)之间。
补充:能把你测试的代码发一下吗?你是改的val进行测试还是直接改的mSeed?
仅从代码上看,这句的意思就是和我们回答的一样,取val的低2字节(0~65535)放入mSeed。不知道你的完整加密代码是什么样的,有可能加密算法对mSeed的取值范围有要求,因此是必须加上的。
至于为什么测试结果与我们的答案不同,我现在不方便自己开VB进行测试,希望你能提供测试代码再来确定最终的原因是什么。
展开全部
& 是二进制位运算符。&HFFFF 的 &H 表示这是一个十六进制数。FFFF 是十六进制数的值。换算成二进制就是 1111 1111 1111 1111(2个字节)。
& 规定,当 r & l 结果是在每个二进制位数上取最小值。
0 & 1 = 0
1 & 1 = 1
1 & 0 = 0
变量 val 是 long ,范围是 8 字节。因此 val and &HFFFF 的结果就是只取的 val 8 个字节中的最小 2 字节。忽略其他字节。因为其他字节和 0 and 运算后变成 0 了。
& 规定,当 r & l 结果是在每个二进制位数上取最小值。
0 & 1 = 0
1 & 1 = 1
1 & 0 = 0
变量 val 是 long ,范围是 8 字节。因此 val and &HFFFF 的结果就是只取的 val 8 个字节中的最小 2 字节。忽略其他字节。因为其他字节和 0 and 运算后变成 0 了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不好意思,我一时大意将&HFFFF=1111 1111 1111 1111说成了四字节,其实这里是二字节..SmallaySS说得对..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
晕哦,问问题也不问清楚点&HFFFF是颜色代码而已,如果你确定是加密算法,那么应该是用的hex
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询