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

相关新闻

最新新闻

春节祝福AI系统:LLaMA-2微调与工程化实战

春节祝福AI系统:LLaMA-2微调与工程化实战

1. 项目背景与核心价值春节作为华人世界最重要的传统节日,祝福语承载着特殊的情感价值。传统祝福方式存在几个痛点:内容同质化严重(80%的"新年快乐")、个性化程度低、创作门槛高。我们团队开发的春节祝福AI系统&#xf…

2026/7/25 22:15:48
AI辅助开发:从Blender到Unity的自动化资产管道构建实践

AI辅助开发:从Blender到Unity的自动化资产管道构建实践

最近在折腾 Blender 和 Unity 之间的资产流转,发现一个挺有意思的现象:很多开发者都卡在“单次导出导入”这个环节,以为把模型从 A 软件拖到 B 软件,任务就结束了。但真正麻烦的,从来不是那一次成功的传输,而是如何把这种跨软件协作变成一套稳定、可复用、能放进团队流程…

2026/7/25 22:15:48
终极开源任务管理神器:OpenTodoList完全使用指南

终极开源任务管理神器:OpenTodoList完全使用指南

终极开源任务管理神器:OpenTodoList完全使用指南 【免费下载链接】opentodolist A simple Todo and task management application - Mirror of https://gitlab.com/rpdev/opentodolist 项目地址: https://gitcode.com/gh_mirrors/op/opentodolist OpenTodoLi…

2026/7/25 22:15:48
UE4材质节点Saturate与DepthFade实战:5个核心用法与避坑指南

UE4材质节点Saturate与DepthFade实战:5个核心用法与避坑指南

1. 项目概述:从两个节点到一套工作流 在UE4的材质编辑器中, Saturate 和 DepthFade 是两个看似基础,但实际应用场景极其广泛且容易用错的节点。很多刚接触材质的朋友,可能会觉得 Saturate 不就是个钳制函数, De…

2026/7/25 22:15:48
探索gh_mirrors/core109/core实时组件:构建高性能WebSocket应用

探索gh_mirrors/core109/core实时组件:构建高性能WebSocket应用

探索gh_mirrors/core109/core实时组件:构建高性能WebSocket应用 【免费下载链接】core Backend server API handling user mgmt, database, storage and real-time component 项目地址: https://gitcode.com/gh_mirrors/core109/core gh_mirrors/core109/cor…

2026/7/25 22:15:48
AI驱动前端全栈开发:Codex与Spec Coding实战指南

AI驱动前端全栈开发:Codex与Spec Coding实战指南

这次我们来看一个能显著提升前端全栈开发效率的技术组合:Codex Spec Coding。这个组合的核心目标不是让你学习新框架,而是通过 AI 辅助,将原本需要数周甚至一个月的项目开发周期,压缩到以小时甚至分钟为单位。对于前端和全栈开发…

2026/7/25 22:10:48

月新闻