签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
如题,想在WINCC里面的VBS里实现,该怎样编写脚本?
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1631043&b_id=5&s_id=0&num=12
'整数拆分成两个字节
byte[1] = int / 256
byte[0] = int mod 256
‘将低字节拆分成低八位
b = byte[0]
for i = 0 to 7
bit[i] = b mod 2
b = b / 2
next
’将高字节拆分成高八位
b = byte[1]
for i = 8 to 15
谢谢指导,有点不太明白为啥要拆成2个字?我试着直接读第2位和第14位,按上面方法直接按字的形式运算,也是能正确显示的。另外/应该是\
习惯性拆分为字节再拆分为位!
/和\记不住,一个会返回小数,一个只返回整数!
试试看|谢谢
连续除2取余,就能分别得到各个位了,这个可以参照考虑2进制与10进制的转换
这个除256(高字节) 跟求余数(低字节)怎么个解释法???难道是一个字节0-255先算低8位? 用这个数除255才对吧?怎么会是除256呢?假如这个数是257 用你这种方法也行不通啊,,除不尽如果强制类型转换也会丢失数据啊,我还是不同意你这种思路,,,能否解释一下?我觉得可以用for循环与逻辑每个位逐次与逻辑,,只要与的结果大于1就 输出就行了。。
不错 正解。
vbs里面没有布尔型的数据类型。
如果要判断数值某个二进制位用And运算。
比如判断 bit0 就用
dim bool
if Value And 1 then
bool = 1
else
bool = 0
end if
反正bit0 就And 1,bit1 用 And 2,bit3 用 And4.....
反正就是And 位对应的二进制2^n值,16位数每个位值的0位到15位分别是:1、2、4、8、16、32、64、128、256、512.....32768。
楼上纠结256和255的有点糊涂了。
256没错的
256在16进制即100
相当于一个32位的数值,去掉2个0, 这怎么会冒出来255呢?
来个简单的
bit0=SmartTags("内容") And 2^0
bit1=SmartTags("内容") And 2^1
bit2=SmartTags("内容") And 2^2
bit3=SmartTags("内容") And 2^3
bit4=SmartTags("内容") And 2^4
可以直接读那位个变量的你需要的位数
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录