AI开发C语言应用按步走,表达式计算器calc的第十五步,进制数字与位运算符
calc15 —进制数字与位运算符1. 概述本次迭代新增了进制数字识别和位运算功能支持十六进制、八进制、二进制字面量以及 C 语言风格的位运算符。新增功能类别语法示例十六进制0x/0X前缀0xFF→ 255八进制0前缀后跟0-70777→ 511二进制0b/0B前缀0b1010→ 10按位与3 6→ 2按位或|3 | 6→ 7按位异或^3 ^ 6→ 5按位取反~~0→ -1左移1 3→ 8右移8 2→ 22. 变更清单文件操作说明parse.h编辑TokenType 新增 6 个类型BITNOT/BITAND/BITOR/BITXOR/SHL/SHR注释更新parse.c编辑进制数字识别strtol0x/0b/0前缀检测位运算符 token|^~update_expect/token_name更新eval.c重写新增 4 层语法层bitor/bitxor/bitand/shiftunary增加~分支test.expr编辑新增 12 个进制/位运算测试用例总数 58→703. 数字解析3.1 识别逻辑在parse_next中数字识别分支按优先级检查1. 0x / 0X → strtol(..., 16) 十六进制 2. 0b / 0B → strtol(..., 2) 二进制 3. 0 后跟 0-7 → strtol(..., 0) 八进制自动识别 4. 其他 → strtod 十进制 / 浮点3.2 示例0xFF→2550xff→2550b1010 →100777→511// 八进制0→0// 十进制零3.14→3.14// 浮点4. 位运算符4.1 新增 TokenToken运算符含义TOKEN_BITAND按位与TOKEN_BITOR|按位或TOKEN_BITXOR^按位异或TOKEN_BITNOT~按位取反一元TOKEN_SHL左移TOKEN_SHR右移4.2 多字符运算符优先级在parse_next中和在单字符之前检查和||在单字符\|之前检查多字符检查顺序 → ! → → → → → → || 单字符 fallback ! ~ | ^ ...5. 优先级体系5.1 完整优先级表从低到高优先级语法层运算符结合性1 (最低)expr_or||左结合2expr_and左结合3expr_bitor|左结合4expr_bitxor^左结合5expr_bitand左结合6expr_equality!左结合7expr_shift左结合8expr_relational左结合9expr_additive-左结合10expr_multiplicative*/%左结合11unary!~-右结合5.2 文法expr → expr_or expr_or → expr_and ((||) expr_and)* expr_and → expr_bitor (() expr_bitor)* expr_bitor → expr_bitxor ((|) expr_bitxor)* expr_bitxor → expr_bitand ((^) expr_bitand)* expr_bitand → expr_equality (() expr_equality)* expr_equality → expr_shift (( | !) expr_shift)* expr_shift → expr_relational (( | ) expr_relational)* expr_relational → expr_additive (( | | | ) expr_additive)* expr_additive → expr_multiplicative (( | -) expr_multiplicative)* expr_multiplicative → unary ((* | / | %) unary)* unary → (- | ! | ~) unary | factor factor → NUMBER | IDENTIFIER | TRUE | FALSE | ( expr )6. 测试验证$maketestcalc — 测试套件...(前58个测试用例)... PASS[59]0xFF →255PASS[60]0xff →255PASS[61]0b1010 →10PASS[62]0777 →511PASS[63]36→2PASS[64]3|6→7PASS[65]3^6 →5PASS[66]~0 →-1PASS[67]13→8PASS[68]82→2PASS[69]0xFF0x0F →15PASS[70]352→070passed,0failed,70total优先级验证表达式结果验证点3520优先于8 2 013232优先于1 5 32~010~优先于~0 -1,-1 1 0

相关新闻

YOLOv11在工业传送带物体检测中的实践与优化

YOLOv11在工业传送带物体检测中的实践与优化

## 1. 项目背景与核心需求在工业自动化领域,传送带物体检测是实现智能分拣、质量控制和流程优化的关键技术。传统基于规则或机器视觉的方法在面对复杂背景、多目标重叠和高速运动场景时往往表现不佳。这个毕业设计项目正是针对这一痛点,采用当前最先进的…

2026/7/25 18:10:22阅读更多 →
Java虚拟机:非堆内存的参数设置

Java虚拟机:非堆内存的参数设置

一、非堆内存的核心区域JVM的内存主要分为堆内存和非堆内存。堆内存存放对象实例,而非堆内存则存放类元数据、方法信息、线程栈、直接内存等。我们重点讨论三个关键部分。1. 元数据区(Metaspace)—— 永久代的替代者在JDK 1.8之前&#xff0c…

2026/7/25 18:08:22阅读更多 →
2026安装龙虾推荐七款本地AI智能体测评 AionClaw适配办公创作投资多类场景

2026安装龙虾推荐七款本地AI智能体测评 AionClaw适配办公创作投资多类场景

一、龙虾 AI 智能体是什么 工具筛选参考维度 随着本地桌面 AI 自动化需求持续提升,基于 OpenClaw 框架衍生的龙虾类智能体,成为不少用户提升日常工作效率的工具类型。这类智能体和普通云端对话 AI 存在明显区分,能够本地部署运行,…

2026/7/25 18:08:22阅读更多 →
使用curl命令快速测试Taotoken API连通性与鉴权

使用curl命令快速测试Taotoken API连通性与鉴权

使用curl命令快速测试Taotoken API连通性与鉴权 在对接大模型服务时,直接使用 curl 命令进行测试是一种高效、轻量的方法。它无需依赖特定编程语言的SDK,能让你快速验证API端点是否可达、鉴权是否通过,并初步检查请求格式是否正确。对于使用T…

2026/7/25 19:32:34阅读更多 →
BaiduPCS-Web终极指南:如何突破百度网盘限速实现高速下载

BaiduPCS-Web终极指南:如何突破百度网盘限速实现高速下载

BaiduPCS-Web终极指南:如何突破百度网盘限速实现高速下载 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web BaiduPCS-Web是一个基于现代Web技术构建的开源百度网盘客户端,专门为解决百度网盘下载限速问…

2026/7/25 19:32:34阅读更多 →
新手必看,五分钟在Taotoken平台获取API Key并完成首次模型调用

新手必看,五分钟在Taotoken平台获取API Key并完成首次模型调用

新手必看,五分钟在Taotoken平台获取API Key并完成首次模型调用 对于初次接触大模型API的开发者来说,从注册到成功发出第一个请求,往往是最关键的第一步。Taotoken作为大模型售卖与聚合分发平台,提供了OpenAI兼容的HTTP API&#…

2026/7/25 19:32:34阅读更多 →
三步快速掌握AMD锐龙性能调优:电源调试神器完全配置指南

三步快速掌握AMD锐龙性能调优:电源调试神器完全配置指南

三步快速掌握AMD锐龙性能调优:电源调试神器完全配置指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://…

2026/7/25 19:32:34阅读更多 →
如何通过KK-HF Patch解决Koikatsu游戏体验的5大常见问题

如何通过KK-HF Patch解决Koikatsu游戏体验的5大常见问题

如何通过KK-HF Patch解决Koikatsu游戏体验的5大常见问题 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch KK-HF Patch是一个专为Koikatu和Koikatsu…

2026/7/25 19:32:34阅读更多 →
5分钟掌握泰拉瑞亚地图编辑器:免费开源的专业创作工具

5分钟掌握泰拉瑞亚地图编辑器:免费开源的专业创作工具

5分钟掌握泰拉瑞亚地图编辑器:免费开源的专业创作工具 【免费下载链接】Terraria-Map-Editor TEdit - Terraria Map Editor - TEdit is a stand alone, open source map editor for Terraria. It lets you edit maps just like (almost) paint! It also lets you ch…

2026/7/25 19:30:33阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →