[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

一直对左移和右移不太懂, 今天看了下面的文章, 还是不太懂
http://code.newban.cn/163.html

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


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

0x0300<<16
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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

评分人数

TOP

回复 2# WHY

多谢大佬详细指导!

TOP

返回列表