当前位置: 首页 > news >正文

按位宽提取十六进制值

 需求:给出一个十六进制值,要求提取high和low位之间的值。比如16'ha0f0,这是一个16bit宽的十六进制数0xa0f0,提取[15:12]范围内的值。

def extract_bits(value, high, low):"""从 value 中提取 [high:low] 位的值:param value: 整数,比如 0x8844:param high: 高位,比如 31:param low: 低位,比如 18:return: 提取后的整数"""print(1 << (high - low + 1))mask = (1 << (high - low + 1)) - 1result = (value >> low) & maskreturn resultdef main():# 输入部分hex_str = '0xa0f0'val = int(hex_str, 16)  # 你的输入数据bit_high = 15       # 高位bit_low = 12        # 低位# 处理extracted = extract_bits(val, bit_high, bit_low)# 输出print(f"原数值: 0x{val:08x}")print(f"提取位 [{bit_high}:{bit_low}] 后的结果:")print(f"十进制: {extracted}")print(f"十六进制: 0x{extracted:x}")print(f"二进制: {bin(extracted)}")if __name__ == "__main__":main()"""
原数值: 0x0000a0f0
提取位 [15:12] 后的结果:
十进制: 10
十六进制: 0xa
二进制: 0b1010
"""

http://www.xdnf.cn/news/350731.html

相关文章:

  • OpenCV的 ccalib 模块用于自定义标定板的检测和处理类cv::ccalib::CustomPattern()----函数calibrate
  • uniapp开发的项目上传到国内主流应用市场(华为、小米、oppo、vivo)
  • COLT_CMDB_aix_diskinfo.sh
  • OCCT中的基础变换
  • C++卡特兰数讲解
  • Java 显式锁与 Condition 的使用详解
  • Android MVC架构的现代化改造:构建清晰单向数据流
  • AI搜索的未来:技术纵深发展与关键突破路径
  • Kubernetes 手动部署 Prometheus 学习计划
  • 【计算机网路】--tcp四次挥手关闭连接
  • pm2 list查询服务时如何通过name或者namespace进行区分
  • 文本文件的定义
  • CTF杂项入门(BUUCTF-Misc第一页)
  • Python机器学习中的字典列表特征提取
  • 基于vue3+QuillEditor的深度定制
  • [数据库之十四] 数据库索引之位图索引
  • 最短路径-Dijkstra及其堆优化版本
  • 指纹浏览器技术解析:从原理到实战的多账号管理解决方案
  • 数据清洗(ETL/ELT)原理与工具选择指南:企业数字化转型的核心引擎
  • 常用 svg ICON
  • FreeRTOS如何检测内存泄漏
  • Linux操作系统中的通知机制 - 监控文件事件 inotify
  • 印度股票市场API对接文档
  • 麒麟信安举办特种行业核心代理商中级技术认证培训班
  • 【计网】TCP/IP四层模型(一)
  • [硬件电路-18]:MCU - LPC1765FBD100是恩智浦(NXP)半导体推出的一款基于ARM Cortex-M3内核的高性能32位微控制器
  • 如果说开启的TIM3定时器有ccr1,ccr2,ccr3,我想要关闭ccr2的PWM输出,怎么通过代码实现
  • AI优化高频PCB信号完整性:猎板PCB的技术突破与应用实践
  • 多环串级PID
  • 主场景 工具栏 植物卡牌的渲染