编译原理实现进制转换
二进制字面量的文法很简单,如下所示:bininteger ::= "0" "b" bindigit+bindigit ::= "0" | "1"按照编译原理,二进制字面量的解析主要分词法分析和语义分析两个阶段:词法分析,识别源代码中字符序列为一个二进制数的字面量,通常使用正则表达式来进行的。词法分析的正则表达式可以是“0b+”语义分析,将字面量转换为值,就是循环所有一个字符,将累加值乘以10,再加上当前字符转换为整数的值(0或1),代码如下所示:scala\u0026gt; val literal = "01111010"literal: java.lang.String = 01111010scala\u0026gt; val value = https://www.zhihu.com/api/v4/questions/27488728/literal.toList.foldLeft(0)(_*2+_-48)value: Int = 122
■网友
【编译原理实现进制转换】
龙书居然用这么朴素的方法来计算一串数字,很low啊有木有!
推荐阅读
- 北京22家市属医院均开展安检基本实现重点区域安检措施全覆盖
- 长江流域渔民退捕“上岸”实现扩产新致富
- 实现“甜蜜计划”,这对中哈跨国夫妻好甜
- 北京地铁11号线西段三座车站提前实现主体结构封顶
- 特斯拉|特斯拉将全面发布全自动驾驶软件最新版,曾承诺年底实现完全无人干预
- |徐州建有农家书屋2205家,实现数字书屋全覆盖
- 阿里云|【GET2020】阿里云解航:在线教育帮助线下教育一起实现教育公平和个性化
- 我有几个app点子,拉出来比较容易实现的一个和大家探讨,只差程序员(替你们说了)请问这个点子咋样
- 一个利用量子纠缠实现超光速通讯的构想,可行吗
- 外交谈判|
