社区
VB基础类
帖子详情
VB的逻辑运算and or xor怎么算的?
xabcdc
2004-01-08 11:17:24
AND OR XOR运算是怎么实现的?
200 and 127==72
偶试了很多数,结果好像没什么规律?
那个72是怎么来的?
...全文
802
11
打赏
收藏
VB的逻辑运算and or xor怎么算的?
AND OR XOR运算是怎么实现的? 200 and 127==72 偶试了很多数,结果好像没什么规律? 那个72是怎么来的?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xabcdc
2004-01-08
打赏
举报
回复
127=(00000000 And &H7F&) * &H2 + (00000000 And &H7F&) * &H4 + (00000000 And &H7F&) * &H80 + (01111111 And &H7F&)
怎么反过来得到00000000 00000000 0000000 01111111
3661512
2004-01-08
打赏
举报
回复
先转换成2进制,再进行运算,例如:
200=11001000
127=01111111
11001000
AND
01111111
-------------
01001000 =72
firechun
2004-01-08
打赏
举报
回复
和C的位运算是一样的。
200=&HC8=11001000B
127=&H7F=01111111B
位运算: 01001000B=&H48=72
xabcdc
2004-01-08
打赏
举报
回复
说错了,应该是位运算!
xabcdc
2004-01-08
打赏
举报
回复
明白,谢了~
脆皮大雪糕
2004-01-08
打赏
举报
回复
http://www.qhnu.edu.cn/cbe/ncre/window/kechengxuexi/1.5.htm
http://www.k12.com.cn/webpage/vbscript/239.htm
脆皮大雪糕
2004-01-08
打赏
举报
回复
哎,首先你要知道十进制、二进制、十六进制的互相转换。
然后你要知道在二进制状态下
1 and 1 = 1,1 and 0 = 0,0 and 1 = 0,0 and 0 = 0
下面来解释你的那个式子
127=(00000000 And &H7F&) * &H2 + (00000000 And &H7F&) * &H4 + (00000000 And &H7F&) * &H80 + (01111111 And &H7F&)
首先把十六进制的&H7F转换成二进制: 01111111
然后我们来计算(00000000 And &H7F&) :
00000000
and 01111111
---------------
00000000 (这是根据我上面给你的那几个公式对二进制数进行逐位and运算)
那么二进制的00000000就是十进制的0,十六进制的&H2就是十进制的2
(00000000 And &H7F&) * &H2 = 00000000*&H2 = 0 * 2 = 0 = 00000000(二进制)
同理:
(00000000 And &H7F&) * &H4 = 0 * 4 = 0 = 00000000(二进制)
(00000000 And &H7F&) * &H80= 0 * 128 = 0 = 00000000(二进制)
最后我们来计算(01111111 And &H7F)
01111111
and 01111111
---------------
01111111 (这是根据我上面给你的那几个公式对二进制数进行逐位and运算)
所以最终你的那个式子就是
00000000 + 00000000 + 00000000 + 01111111 = 01111111 =127(十进制)
如果这下还没明白过来就没有办法了
firechun
2004-01-08
打赏
举报
回复
我不知道你要问什么?本来很简单的问题,怎么被你越说越不明白了。
A and B=C 但是B And C<>A
A xor B=C 而且 A xor C=B , B xor C=A
xabcdc
2004-01-08
打赏
举报
回复
回复人: firechun(天火) ( ) 信誉:97 2004-01-08 13:02:00 得分:0
我的意思是怎么算出00000000 00000000 00000000 01111111这几个数?
xabcdc
2004-01-08
打赏
举报
回复
11011101
and
01011011
=
01011001
怎么反过来从01011011 01011001 得到 11011101
firechun
2004-01-08
打赏
举报
回复
帮你解析一下:
(00000000 And &H7F&) * &H2 =0
(00000000 And &H7F&) * &H=0
(00000000 And &H7F&) * &H80 =0
以上三个肯定等于0,0和任何数AND运算都等于0
(01111111 And &H7F&)=&H7F=127
01111111就是&H7F的二进制值,任何一个数和它本身进行AND运算都等于这个数。&H7F是127的16进制值,所以你的等式是成立的。
至于反过来得到00000000 00000000 0000000 01111111,这也没错啊,结果仍然是127。只不过是二进制的方式表现出来的。
逻辑计
算
器(异或,与,或)
因为最近要做协议,经常用到逻辑计
算
的功能,就编写了一个功能比较简单的逻辑计
算
器 可以实现异或、逻辑与、逻辑或的计
算
分十进制和十六进制输入两种 输出也分十进制和十六进制 顺带附上源码,
VB
编写^_^
三种(AES,DES.,
XOR
)加解密方式的实现
三种(AES,DES.,
XOR
)加解密方式的实现 环境win7+vs2013
VB
课后习题答案
VB
课后习题的详细答案,包含部分题目的程序代码和最终结果
grasshopper中文版运
算
器名称对照翻译.doc
grasshopper中文版运
算
器名称对照翻译.doc
VB
计
算
器;小学期作品
科学计
算
器;
VB
实现;二进制十进制十六进制;四则运
算
逻辑运
算
;小学期作品;物有所值
VB基础类
7,785
社区成员
197,585
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章