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

[数值计算] cmd 批处理写将16进制数转成2进制数,取bit2,bit 5 的值

[复制链接]
发表于 2015-8-9 15:51:09 | 显示全部楼层 |阅读模式
我要在windows cmd 运行的bat, 将16进制数转成2进制数,取bit2,bit 5 的值 , 要怎么写啊,想的头都大了.
发表于 2015-8-9 21:20:02 | 显示全部楼层
十六进制转二进制的办法太多了吧...
 楼主| 发表于 2015-8-10 08:30:15 | 显示全部楼层
回复 2# CrLf


    大哥,请赐教,
  十六制有两位,转换成二进制,取bit2/bit4 /bit5 的值.
谢谢
发表于 2015-8-10 15:59:28 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "hex=AB"
  4. for %%i in (
  5.     "#0=0000"
  6.     "#1=0001"
  7.     "#2=0010"
  8.     "#3=0011"
  9.     "#4=0100"
  10.     "#5=0101"
  11.     "#6=0110"
  12.     "#7=0111"
  13.     "#8=1000"
  14.     "#9=1001"
  15.     "#A=1010"
  16.     "#B=1011"
  17.     "#C=1100"
  18.     "#D=1101"
  19.     "#E=1110"
  20.     "#F=1111"
  21. ) do set %%i

  22. for %%i in (0 1) do (
  23.     for %%j in (!hex:~%%i^,1!) do set "bin=!bin!!#%%j!"
  24. )

  25. echo %bin%
  26. echo bit2=%bin:~1,1%
  27. echo bit5=%bin:~4,1%
  28. pause
复制代码
发表于 2015-8-10 16:31:05 | 显示全部楼层
现在的计算机都工作在 2 进制的基础上, 要获得 2 进制形式, 用位运算:
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. for /l %%i in (0x20 -1 -0x20) do (
  4.     for /l %%b in (31 -1 0) do set /a "b = %%i >> %%b & 1" & <nul set /p "=!b!"
  5.     echo;   %%i
  6. )

  7. pause
复制代码
发表于 2015-8-10 18:14:33 | 显示全部楼层
本帖最后由 bailong360 于 2015-8-11 15:11 编辑
  1. set /a "bit2=0xCC&4>>1,bit5=0xCC&16>>4"
复制代码
既然最终目的是取bit2,bit5的值,直接位运算就好了嘛...
-----------
楼下很狡猾,竟然不告诉我写错了....原来bit2是指从右往左第3位...
发表于 2015-8-11 00:13:54 | 显示全部楼层
同意 既然取bit2,bit5的值 直接位运算
  1. set /a "bt2=0xAB>>6&1,bt5=0xAB>>3&1"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 17:45 , Processed in 0.016536 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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