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

进制表示

在 C++ 中,十六进制、十进制和八进制是表示整数的三种常用进制,它们在代码中的表示形式不同

一、问题描述

在代码中,错用 报文接受的 0600 来代表 十六进制。实则0600 代表的是八进制。

//报文:68 15 00 03 00 01 80 8A E6 68 63 27 E7 68 11 01 06 00 01 00 00 00 64 00
//dev_id 表示接受到 11 01 06 00 
void get_id()
{if((dev_id & 0xffff) = 0600 ) //错误{printf("获取成功 ! \n");}else{printf("获取失败 ! \n");}
}

二、代码改正

//报文:68 15 00 03 00 01 80 8A E6 68 63 27 E7 68 11 01 06 00 01 00 00 00 64 00
//dev_id 表示接受到 11 01 06 00 
void get_id()
{if((dev_id & 0xffff) = 0x0600 ) //错误{printf("获取成功 ! \n");}else{printf("获取失败 ! \n");}
}

三、表示方法

C++ 通过前缀区分不同进制的整数常量:

  • 十进制(Decimal)
    无前缀,由数字 0-9 组成(不能以 0 开头,除非表示 0 本身)。
    示例:42、100、-7。

  • 八进制(Octal)
    以 0 为前缀,由数字 0-7 组成。
    示例:052(对应十进制 42)、0144(对应十进制 100)。

  • 十六进制(Hexadecimal)
    以 0x 或 0X 为前缀,由数字 0-9 和字母 a-f(或 A-F,大小写不敏感)组成。
    示例:0x2A(对应十进制 42)、0x64(对应十进制 100)、0XFF(对应十进制 255)。
http://www.gsyq.cn/news/18477.html

相关文章:

  • 在AI技术快速实现创意的时代,挖掘用户真实需求成为关键——某知名电池管理工具需求洞察
  • 自动输入小程序
  • Jenkins运维之路(共享库集成流水线发布) - 详解
  • 实验报告4(使用顺序表和单链表,进行有序表的合并)
  • 详细介绍:【Windows10】MySQL9.4安装配置
  • ChatTS的一些理解
  • 10月10日
  • 大端与小端
  • 一生一芯学习:基础设施(2)
  • 基于selenium的网页自动搜索
  • MacOS Nginx
  • 缓存的击穿、雪崩、穿透在你项目中的场景是什么
  • [WC2021] 表达式求值
  • 苍穹外卖第三天(Swagger、@RequestParam和@RequestBody的使用场景、@PostMapping和@RequestMapping的区别、对象属性拷贝、@Insert注解)
  • Hyper Server 2019安装I226-V网卡驱动
  • CF1209H tj
  • HTML学习日记
  • 10.10每日总结
  • 二分图与网络流 Trick
  • 10月10号
  • 10/10
  • 数论(未完)
  • 没做完的题
  • 星星充电一面
  • 智能防御,安全赋能:AI-FOCUS 滤海AI DLP 化解外部 AI 风险
  • VS code 中代码补全 自动补全函数括号
  • abc 408 d~f
  • 2025.10.10总结 - A
  • [Flutter] Flutter APK构建签名并推广到Github workflow
  • YOLOv11的神经辐射场(NeRF)辅助训练-(通过合成视角增强内容多样性)