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

16.2【保姆级教程】 C语言八进制+十六进制保姆级详解 _ 底层开发必吃透

C语言八进制十六进制保姆级详解 | 底层开发必吃透 关注博主不迷路全网最细C语言八进制、十六进制教程从定义到实操、从转换到应用新手零门槛上手底层开发/面试必看在C语言底层开发中二进制是计算机的“原生语言”但二进制序列冗长难读、易出错。而八进制和十六进制因基数8、16都是2的幂完美贴合二进制的底层逻辑既能简化二进制的书写与阅读也是硬件控制、协议解析、代码调试中的高频用法——计算机界普遍使用这两种进制就是因为它们比十进制更接近计算机的核心运作方式。很多新手分不清八进制、十六进制的用法甚至混淆转换规则本章将以保姆级细节严格按照以下目录从定义、表示方法、转换规则到实战应用逐一拆解让你彻底吃透再也不踩坑1 八进制基数8完美适配3位二进制2 十六进制基数16核心简化4位二进制底层开发首选先明确核心前提八进制、十六进制本质都是二进制的“简写形式”核心作用是简化二进制书写方便开发者操控底层所有操作最终都会转化为二进制被计算机执行。一、八进制Octal3位二进制的“简写工具”八进制以8为基数是二进制的“3位分组简写”——1位八进制数恰好对应3位二进制数适合快速简化3的倍数位的二进制序列如6位、9位、12位二进制在早期计算机编程中应用广泛至今仍在部分场景使用。1.1 八进制的核心定义与表示方法必记核心定义基数8计数规则“满8进1”数字范围0~7仅这8个数字没有8、9这是新手最易踩的坑与二进制的对应关系1位八进制 3位二进制固定规则牢记。C语言中八进制的表示方法实操重点在C语言中要表示一个八进制数必须在数字前面加前缀0数字0不是字母O——没有前缀0计算机会默认把数字当作十进制处理这是区分八进制与十进制的关键避坑提醒八进制前缀是“0”数字零不是“O”字母O写错会直接报错或识别错误比如012是八进制12是十进制0O12是错误写法实操示例一看就会实操示例一看就会八进制010→ 前缀0数字范围0~7正确表示八进制017→ 对应十进制15正确错误示例10无前缀是十进制、018含数字8不符合八进制规则。C语言实操代码块验证八进制表示与转换#includestdio.hintmain(){// 定义八进制变量前缀0intoct1010;// 八进制010对应十进制8intoct2017;// 八进制017对应十进制15// int oct3 018; // 错误含数字8不符合八进制规则编译报错// 输出八进制、十进制对应值验证转换printf(八进制010 对应十进制%d\n,oct1);// 输出8printf(八进制017 对应十进制%d\n,oct2);// 输出15printf(八进制017 对应八进制printf %%o输出八进制%o\n,oct2);// 输出17return0;}代码说明运行后可直观看到八进制变量的定义规范及进制对应关系注释已标注关键注意点可直接复制运行。1.2 八进制与二进制、十进制的转换保姆级步骤转换的核心是“1位八进制 ↔ 3位二进制”所有转换都围绕这个规则展开步骤简单无需死记硬背跟着练2遍就能掌握。1八进制 ↔ 二进制最常用重点掌握核心逻辑1位八进制 → 3位二进制不足3位补03位二进制 → 1位八进制从右往左分组不足3位补0。先记八进制与3位二进制的对应表记熟这8个转换秒出结果八进制数012345673位二进制数000001010011100101110111实操示例1八进制 → 二进制015 → 步骤拆分每一位八进制数对应转为3位二进制拼接即可0 → 0001 → 0015 → 101 → 拼接后000 001 101 → 简化前导0不影响数值最终二进制001101或1101。实操示例2二进制 → 八进制111010 → 步骤从右往左每3位分组不足3位补0每组对应1位八进制111010 → 分组011补1个0、101 → 01131015 → 最终八进制035加前缀0。2八进制 ↔ 十进制基础必备核心逻辑与十进制、二进制转换一致都是“按位加权求和”八进制权重是8的幂次。① 八进制 → 十进制按位加权求和从右往左幂次从0开始公式八进制数dₙdₙ₋₁...d₁d₀→ 十进制 dₙ×8ⁿ dₙ₋₁×8ⁿ⁻¹ … d₁×8¹ d₀×8⁰示例八进制017 → 十进制计算1×8¹ 7×8⁰ 8 7 15 → 十进制15。② 十进制 → 八进制除8取余逆序排列与十进制转二进制逻辑一致只是除数从2改为8示例十进制23 → 八进制步骤23÷82 余72÷80 余2 → 逆序拼接余数27 → 加前缀0最终八进制027。1.3 八进制的实际应用场景底层开发必知八进制虽不如十六进制常用但在特定场景仍不可替代主要应用于早期计算机编程因早期计算机多为3的倍数位如6位、12位八进制简化二进制更便捷Unix/Linux权限设置部分场景用八进制表示文件权限如0777表示最高权限简单底层调试快速简化3位分组的二进制序列方便人工核对代码逻辑。小贴士八进制重点记“前缀0、数字0~7、1位对应3位二进制”日常开发中遇到3的倍数位二进制优先用八进制简化。二、十六进制Hexadecimal底层开发的“首选简写”十六进制以16为基数是二进制的“4位分组简写”——1位十六进制数恰好对应4位二进制数而计算机中最基本的存储单位字节是8位恰好对应2位十六进制因此十六进制是C语言底层开发的首选进制硬件控制、寄存器操作、协议解析、数据加密中无处不在。相比于八进制十六进制更灵活适配8位、16位、32位二进制使用频率更高是新手必须重点掌握的进制。2.1 十六进制的核心定义与表示方法必记核心定义基数16计数规则“满16进1”数字范围09、AF或af其中AF对应十进制10~15大小写不区分开发中常用大写与二进制的对应关系1位十六进制 4位二进制固定规则底层开发的核心与字节的对应关系1字节8位 2位十六进制这是十六进制最常用的场景。C语言中十六进制的表示方法实操重点在C语言中要表示一个十六进制数必须在数字前面加前缀0x或0X大小写不区分——没有前缀计算机默认当作十进制前缀写错如x0、Ox会直接报错新手务必注意避坑提醒十六进制前缀是“0x”数字0字母x不是“x0”“Ox”比如0x1A是十六进制1A是十进制x1A是错误写法A~F大小写均可如0x1A和0x1a完全等价。实操示例一看就会实操示例一看就会十六进制0x10→ 前缀0x含数字0~9正确表示十六进制0x1A→ A对应十进制10正确十六进制0xFF→ F对应十进制15是8位二进制的最大值11111111错误示例1A无前缀十进制、x1A前缀错误、0x1G含G超出A~F范围。C语言实操代码块验证十六进制表示与转换#includestdio.hintmain(){// 定义十六进制变量前缀0x大小写均可inthex10x10;// 十六进制0x10对应十进制16inthex20x1A;// 十六进制0x1A对应十进制26inthex30xFF;// 十六进制0xFF对应十进制2558位无符号最大值// int hex4 0x1G; // 错误含字母G超出A~F范围编译报错// 输出十六进制、十进制对应值验证转换printf(十六进制0x10 对应十进制%d\n,hex1);// 输出16printf(十六进制0x1A 对应十进制%d\n,hex2);// 输出26printf(十六进制0xFF 对应十进制%d\n,hex3);// 输出255// 用printf %%x输出十六进制小写%%X输出大写printf(十六进制0x1A 原样输出大写%X\n,hex2);// 输出1Areturn0;}代码说明涵盖十六进制正确/错误定义、进制转换验证printf输出格式可直接复用适合实操练习。2.2 十六进制与二进制、十进制的转换保姆级步骤转换核心是“1位十六进制 ↔ 4位二进制”步骤和八进制转换逻辑一致重点记准对应关系实操性极强新手跟着练3遍就能熟练掌握。1十六进制 ↔ 二进制底层开发最常用核心逻辑1位十六进制 → 4位二进制不足4位补04位二进制 → 1位十六进制从右往左分组不足4位补0。先记十六进制与4位二进制的对应表记熟这16个转换不用算直接查十六进制数012345674位二进制数00000001001000110100010101100111十六进制数89ABCDEF4位二进制数10001001101010111100110111101111实操示例1十六进制 → 二进制0x1A → 步骤拆分每一位十六进制数对应转为4位二进制拼接即可1 → 0001A → 1010 → 拼接后0001 1010 → 简化前导0最终二进制11010或000110108位补零。实操示例2二进制 → 十六进制11010111 → 步骤从右往左每4位分组不足4位补0每组对应1位十六进制11010111 → 分组1101、0111 → 1101D01117 → 加前缀0x最终十六进制0xD7底层开发常用写法。实战技巧8位二进制1字节转十六进制直接拆分为前4位和后4位各对应1位十六进制秒出结果比如11111111 → 0xFF。2十六进制 ↔ 十进制面试高频考点核心逻辑按位加权求和十六进制权重是16的幂次与八进制、二进制转十进制逻辑完全一致只是权重不同。① 十六进制 → 十进制按位加权求和从右往左幂次从0开始公式十六进制数dₙdₙ₋₁...d₁d₀→ 十进制 dₙ×16ⁿ dₙ₋₁×16ⁿ⁻¹ … d₁×16¹ d₀×16⁰示例十六进制0x1A → 十进制计算1×16¹ 10×16⁰ 16 10 26 → 十进制26。示例2十六进制0xFF → 十进制计算15×16¹ 15×16⁰ 240 15 255 → 十进制2558位无符号二进制的最大值。② 十进制 → 十六进制除16取余逆序排列除数从2改为16余数1015对应AF示例十进制35 → 十六进制步骤35÷162 余32÷160 余2 → 逆序拼接余数23 → 加前缀0x最终十六进制0x23。示例2十进制28 → 十六进制步骤28÷161 余12对应C1÷160 余1 → 逆序拼接1C → 最终十六进制0x1C。2.3 十六进制的实际应用场景底层开发高频十六进制是C语言底层开发的“主力进制”几乎所有底层操作都离不开它核心应用场景如下新手必了解面试常考硬件控制与寄存器操作硬件寄存器如GPIO口、串口寄存器的配置通常用十六进制表示如0x01表示开启某功能位位操作与掩码底层开发中掩码常用十六进制表示如0x08对应二进制00001000用于保留第3位简洁易读数据加密与协议解析加密算法如XOR、网络协议如TCP/IP的数据包常以十六进制表示方便调试和解析内存地址表示计算机内存地址通常用十六进制表示如0x7FF00000简洁且贴合二进制底层代码调试调试时变量的二进制值会以十六进制显示方便开发者快速核对底层数据。2.4 十六进制新手避坑指南重点新手学习十六进制最容易踩以下4个坑记住这些避免写bug前缀错误必须加0x/0X不能漏写、错写如x1A、Ox1A都是错误的数字范围错误只能用09、AF/af不能出现GZ等字母转换错误拼接二进制时不足4位必须补0如A对应1010不能写成101大小写混淆A~F大小写不区分但开发中建议统一用大写如0x1A不写0x1a提升代码可读性。总结八进制与十六进制核心区别与学习建议很多新手会混淆八进制和十六进制这里用一张表快速区分核心差异一目了然对比项八进制十六进制基数816C语言前缀0数字00x/0X与二进制对应1位 ↔ 3位1位 ↔ 4位核心用途简化3的倍数位二进制、部分权限设置底层开发首选、硬件控制、协议解析等学习建议新手必看优先掌握十六进制底层开发中使用频率极高重点记准前缀、对应表和转换步骤八进制按需掌握记住核心规则即可遇到相关场景再深入练习多实操练习转换规则看似复杂练5~10个示例就能熟练掌握建议结合位操作练习如用十六进制写掩码。八进制和十六进制是C语言通往底层开发的“钥匙”——吃透它们你才能真正看懂硬件寄存器配置、协议数据包、内存地址才能写出高效、精准的底层代码。无论是面试中的进制转换题还是实际开发中的底层操控这部分知识都是不可或缺的#C语言 #八进制 #十六进制 #进制转换 #底层开发 #保姆级教程 #大厂面试欢迎关注获取更多技术干货 C语言宝藏资源包免费送14 本 C 经典书 编译工具全家桶 高效编程技巧搭配 C 语言精选书籍、20 算法源码 项目规范还有 C51 单片机 400 例实战从零基础到嵌入式开发全覆盖学生党、职场人直接抄作业 关注文章末尾的博客同名公众号回复【C 语言】一键解锁全部资源手慢也有​

相关文章:

16.2【保姆级教程】 C语言八进制+十六进制保姆级详解 _ 底层开发必吃透

🔥C语言八进制十六进制保姆级详解 | 底层开发必吃透📢 关注博主不迷路!全网最细C语言八进制、十六进制教程,从定义到实操、从转换到应用,新手零门槛上手,底层开发/面试必看!在C语言底层开发中&a…...

linux入门第六章,cp复制、mv移动,rm删除

我把centOS安装上了,后续就用centOS来讲课,他和kali都是linux,效果一样的cp指令小伙伴们不要一看到cp两个字就说cpdd,这里的cp是复制的意思,英语是copy,语法是: cp [-r] 原文件,目标…...

容器编排:Docker Compose与Kubernetes的适用场景

容器编排:Docker Compose与Kubernetes的适用场景 在容器化技术蓬勃发展的今天,容器编排工具的选择直接影响着应用的部署效率、运维复杂度和系统稳定性。Docker Compose与Kubernetes作为两大主流工具,分别在单机环境与分布式集群领域展现出独特优势。本文将结合真实项目经验…...

STM32H7 SPI4 FLASH HAL库配置优化实践

1. STM32H7 SPI4与FLASH通信基础 最近在做一个基于STM32H743IIT6的项目时,遇到了SPI4与FLASH通信的配置问题。SPI4工作在50MHz的高时钟频率下,调试过程中发现了一些有趣的细节。比如分频系数低于SPI_BAUDRATEPRESCALER_8时读取就会失败,而高于…...

NomNom存档编辑器:3分钟掌握《无人深空》终极修改秘籍

NomNom存档编辑器:3分钟掌握《无人深空》终极修改秘籍 【免费下载链接】NomNom NomNom is the most complete savegame editor for NMS but also shows additional information around the data youre about to change. You can also easily look up each item indi…...

魔兽争霸3性能优化与显示修复完整教程:3步实现完美游戏体验

魔兽争霸3性能优化与显示修复完整教程:3步实现完美游戏体验 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3的卡顿、界面异…...

保姆级教程:用Python和Paho-MQTT库5分钟搭建你的第一个物联网通信Demo

5分钟实战:用PythonPaho-MQTT构建物联网通信原型 在智能家居设备突然向你手机推送报警消息时,在共享单车锁车后立即完成计费时,背后都是MQTT协议在高效运作。作为物联网领域的"HTTP协议",MQTT凭借其轻量级和发布/订阅模…...

GCC扩展语法在嵌入式开发中的高效应用

1. GCC扩展语法深度解析在嵌入式开发领域,GCC编译器因其强大的功能和灵活的扩展特性而广受欢迎。作为一名长期从事嵌入式系统开发的工程师,我发现掌握GCC的扩展语法能显著提升代码效率和可维护性。今天我将分享几个在实际项目中特别实用的GCC扩展语法特性…...

颠覆式网盘直连提取革新:ctfileGet让高速下载成为现实

颠覆式网盘直连提取革新:ctfileGet让高速下载成为现实 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 副标题:突破下载限速困境,3步实现城通网盘直链高效提取 ctfil…...

IM023-将PDF文件导出jpg图片到PDF所在目录下

批量将pdf文档每页导出为jpg图片 比如A文件夹下有B、C、D、E....等文件夹,每个文件夹下都有一定的pdf文件,将程序放在A文件夹下,运行程序后会将B、C、D、E....等文件夹下每个pdf文件分别导出为jpg图片,导出的jpg图片命名方式为&am…...

喜马拉雅音频下载器终极指南:快速批量下载VIP有声小说与付费专辑

喜马拉雅音频下载器终极指南:快速批量下载VIP有声小说与付费专辑 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 你是否…...

从产品到生态:观远数据的一站式智能分析平台之路

开篇:客户现场的真实发问 上个月在华东某快消头部企业的CIO圆桌会上,负责数字化转型的副总裁问了我一个很尖锐的问题: “你们BI厂商总说一站式,但我前几年买的BI工具,最后要么数据接不上要额外买数仓工具,要…...

直接上干货,这个方案最香的就是省掉PLC还能玩转两台变频器。实测施耐德ATV312配MCGS屏的RTU通讯稳得一批,咱们先从最关键的接线开整

mcgs rtu方式通讯两台施耐德ATV312变频器示例 ,通讯实现触摸屏控制监控变频器,中间不需要plc,功能多而且使用方便,关键还节约成本。 所需硬件:施耐德atv312变频器,mcgs触摸屏(没屏也可,电脑在线…...

020驱动模型与sysfs:当你的驱动需要“见人”时

最近在调试一个车载CAN设备时遇到个怪现象:驱动能正常收发数据,但每次系统休眠唤醒后设备就丢了。查了半天发现,原来设备电源管理回调根本没被调用。老张路过我工位瞟了一眼,扔下一句话:“你这驱动没‘上户口’吧&…...

革新性植物大战僵尸辅助工具:PVZ Toolkit全方位功能解析

革新性植物大战僵尸辅助工具:PVZ Toolkit全方位功能解析 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit PVZ Toolkit是一款专为《植物大战僵尸》PC版设计的革新性辅助工具,集…...

019驱动调试与性能优化:printk、动态调试、ftrace、perf工具链

从一次诡异的I2C超时说起 上周排查一个车载IVI系统的触摸屏失灵问题,现象是冷启动后触摸完全无响应,但系统日志里没有任何错误信息。用逻辑分析仪抓I2C波形发现,主机发了START信号后SCL就被拉低了——典型的从设备忙状态。但驱动代码里对应的…...

猫抓资源嗅探扩展完整配置指南:从零开始掌握网页资源捕获

猫抓资源嗅探扩展完整配置指南:从零开始掌握网页资源捕获 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法下载网页视频而烦恼…...

OpenClaw异常处理指南:千问3.5-35B-A3B-FP8任务失败的8种排查方法

OpenClaw异常处理指南:千问3.5-35B-A3B-FP8任务失败的8种排查方法 1. 当OpenClaw遇上千问3.5:我的踩坑起点 上周三凌晨2点,我正试图用OpenClaw自动整理一批会议录音转写的文本。这个任务需要先调用千问3.5-35B-A3B-FP8模型提取关键信息&…...

3dsconv:任天堂3DS游戏格式转换的全流程解决方案

3dsconv:任天堂3DS游戏格式转换的全流程解决方案 【免费下载链接】3dsconv Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format 项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv 问题导入&…...

Boost电路与SMC滑模控制策略:文章复现及性能优化探讨

boost电路,smc滑模控制,文章复现Boost电路在电力电子里算是老熟人了,但真要玩转它的闭环控制可不容易。最近在复现一篇用滑模控制(SMC)搞Boost电路的论文,实测发现这货对付负载突变确实有两把刷子。今天咱们…...

VS Code官宣:全面支持Rust!

当"宇宙第一编辑器"遇上"内存安全的叛逆少年",这场联姻比想象中更甜~最近微软悄悄放了个大招:VSCode 要深度集成 rust-analyzer 了! 🎉 什么意思呢?以前你用 VSCode 写 Rust&#xff0…...

DENSO电装机器人软件授权序列号 wincaps3软件授权和软件安装包及软件手册

DENSO电装机器人软件授权序列号 wincaps3软件授权和软件安装包及软件手册 永久使用序列号 给机器人工程师的WinCaps3安装避坑指南 最近在调试DENSO机械臂的时候,发现不少同行在WinCaps3的安装和授权环节翻车。今天就结合自己的踩坑经验,聊聊怎么搞定这个…...

改进蚁群算法结合Dijkstra与MAKLINK图理论实现二维空间最优路径规划

【改进蚁群算法】/蚁群算法/Dijkstra算法/遗传算法/人工势场法实现二维/三维空间路径规划 本程序为改进蚁群算法Dijkstra算法MAKLINK图理论实现的二维空间路径规划 算法实现: 1)基于MAKLINK图理论生成地图,并对可行点进行划分; 2…...

AI赋能前端开发:让快马平台智能生成仪表盘页面架构与代码

最近在做一个数据可视化项目时,遇到了一个典型的前端开发需求:需要快速搭建一个专业级的仪表盘页面。这个页面需要包含数据概览卡片、图表展示区和用户留言列表三大核心模块。作为一个独立开发者,既要考虑UI美观度,又要兼顾代码质…...

深入理解 C# 架构思维:继承的界限、多态的解耦与属性的封装

C#学习笔记面向对象编程:继承什么是继承继承的语法方法的重写构造函数的重载与 base 关键字动物世界完整实例踩坑汇总面向对象编程:多态多态的实现步骤踩坑汇总面向对象编程:封装核心套路:私有字段 公开属性代码实例踩坑汇总面向…...

新手福音:用claude code和快马平台开启你的Python编程第一课

最近在帮朋友入门Python编程时,发现很多新手都会遇到类似的问题:看教程时觉得简单,但自己动手写代码就无从下手。经过几次尝试,我发现用InsCode(快马)平台结合claude code生成的教学项目,能很好地解决这个痛点。下面分…...

科技信息最前沿——TurboQuant:以极致压缩重新定义人工智能效率

谷歌TurboQuant技术突破:高效压缩AI内存需求谷歌TurboQuant技术通过创新的免训练压缩方法,有效解决了大语言模型面临的内存瓶颈问题。该技术采用两阶段压缩方案:PolarQuant极坐标量化和QJL误差修正,在不损失精度的前提下实现显著优…...

体验ai辅助开发:在快马平台与ai协作构建智能任务管理应用

最近尝试用AI辅助开发了一个任务管理应用,整个过程就像有个经验丰富的编程伙伴在旁边随时提供建议。在InsCode(快马)平台上,这种协作体验特别流畅,分享下具体实现过程: 初始框架搭建 输入"创建一个Vue3任务列表应用&#xff…...

(97页PPT)DG华为流程管理全景从定位到优化的高效增长策略(附下载方式)

篇幅所限,本文只提供部分资料内容,完整资料请看下面链接 https://download.csdn.net/download/AI_data_cloud/89624196 资料解读:《(97页PPT)DG华为流程管理全景从定位到优化的高效增长策略》 详细资料请看本解读文章…...

GEE数据集:全球6400万地点数据免费开放(世界实体的点):商家、学校、医院、宗教组织、地标、山峰等

数据描述 Overture Maps Places 主题包含超过 6,400 万个现实世界实体的点表示形式:商家、学校、医院、宗教组织、地标、山峰等等。 每个地点记录都包含位置坐标、名称、类别、联系信息(网站、社交媒体、电子邮件地址、电话号码)、品牌信息、…...