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的具体目的是什么?不加这句行不行?
展开
 我来答
真白的纱雾d442c
2009-10-20 · TA获得超过1093个赞
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:535万
展开全部
val是Long型的,可能是很大的数。
val and &HFFFF取它的低2字节,即把mSeed的取值限制在0到&HFFFF(十进制为65535)之间。

补充:能把你测试的代码发一下吗?你是改的val进行测试还是直接改的mSeed?
仅从代码上看,这句的意思就是和我们回答的一样,取val的低2字节(0~65535)放入mSeed。不知道你的完整加密代码是什么样的,有可能加密算法对mSeed的取值范围有要求,因此是必须加上的。
至于为什么测试结果与我们的答案不同,我现在不方便自己开VB进行测试,希望你能提供测试代码再来确定最终的原因是什么。
leahb24
2009-10-18 · TA获得超过145个赞
知道答主
回答量:98
采纳率:0%
帮助的人:63.5万
展开全部
& 是二进制位运算符。&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 了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
甜美还清澈灬小白杨2
2009-10-15 · TA获得超过1528个赞
知道小有建树答主
回答量:518
采纳率:0%
帮助的人:562万
展开全部
不好意思,我一时大意将&HFFFF=1111 1111 1111 1111说成了四字节,其实这里是二字节..SmallaySS说得对..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
floatingsnows
2009-10-15 · TA获得超过1798个赞
知道小有建树答主
回答量:1318
采纳率:66%
帮助的人:410万
展开全部
晕哦,问问题也不问清楚点&HFFFF是颜色代码而已,如果你确定是加密算法,那么应该是用的hex
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式