当前位置: 首页 > 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.jsqmd.com/news/11238/

相关文章:

  • 在AI技术快速实现创意的时代,挖掘用户真实需求成为关键——某知名电池管理工具需求洞察
  • 企业推行 OKR 的 10 个关键问题
  • (四)React+.Net+Typescript全栈(错误处理) - 指南
  • Jenkins运维之路(共享库集成流水线发布) - 详解
  • 使用命令行删除 Windows 网络映射驱动器
  • ChatTime的一些理解
  • centos网络打流测试 - 指南
  • 一生一芯学习:基础设施(2)
  • 【黑马python】2.Python 字符串
  • FineReport自定义登录系统技术 - 详解
  • 实验报告2(简单实现图书馆管理系统)
  • 实验报告1(switch语句,二维数组)
  • 【实现自己的 kafka!】kafka 的关键概念
  • 12. 对话框
  • 2024ICPC区域赛香港站
  • AI产品经理要了解的算法有哪些?
  • 一位印度小哥逆袭成为谷歌数据科学家的心路历程 - 教程
  • 基于selenium的网页自动搜索
  • MacOS Nginx
  • 缓存的击穿、雪崩、穿透在你项目中的场景是什么
  • [WC2021] 表达式求值
  • Set集合
  • JAVA - LinkedList 与 ArrayList 区别和 LinkedList 的四大接口解析
  • 苍穹外卖第三天(Swagger、@RequestParam和@RequestBody的使用场景、@PostMapping和@RequestMapping的区别、对象属性拷贝、@Insert注解)
  • Git 多账号管理
  • 完整教程:一文读懂费用分析:定义、分类与成本费用区别
  • Hyper Server 2019安装I226-V网卡驱动
  • P10201 永恒
  • CF1209H tj
  • AirBattery - 在Mac上实时监控所有苹果设备电量