找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 15615|回复: 2

[问题求助] [已解决]PowerShell脚本16进制左移计算

[复制链接]
发表于 2023-4-2 09:51:32 | 显示全部楼层 |阅读模式
一直对左移和右移不太懂, 今天看了下面的文章, 还是不太懂
http://code.newban.cn/163.html

文章有下面的文本, 2F0怎么能乘以或除以16? 2F0是什么?
2F0往左移一位变成2F00, 可以理解为是2F0乘以16得来的
2F0往右移一位变成2F, 可以理解为是2F0除以16得来的


请求路过高手, 计算一下, 下面的式子, 左移后的16进制值和10进制值分别是什么

0x0300<<16

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-4-2 15:56:23 | 显示全部楼层
本帖最后由 WHY 于 2023-4-2 16:01 编辑

2F0 按16进制常规写法就是 0x02F0,共两个字节(1个字节8位),02是高字节,F0是低字节。
如果不明白,把它转成2进制形式:
0000001011110000   红色=02,蓝色=F0
二进制左移1位,数据扩大一倍(2的1次方)
0000010111100000 红色=05,蓝色=E0
二进制左移4位,数据扩大16倍(2的4次方)
0010111100000000 红色=2F,蓝色=00

2进制左移4位,相当于16进制左移一位
0x0300左移16位,相当于16进制左移4位,补4个0即可:0x03000000
  1. 0x0300 -shl 16
  2. (0x300)*[Math]::Pow(2,16)
复制代码
  1. ([int32]((0x300)*[Math]::Pow(2,16))).ToString('X')
复制代码

评分

参与人数 1技术 +1 收起 理由
小白龙 + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-4-2 18:22:10 | 显示全部楼层
回复 2# WHY

多谢大佬详细指导!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:39 , Processed in 0.026011 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表