编译原理实现进制转换

二进制字面量的文法很简单,如下所示: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啊有木有!


    推荐阅读