Lex program for Decimal to Binary Conversion
Last Updated :
02 May, 2019
Problem: Write a Lex program for Decimal to Binary conversion.
Explanation:
FLEX (Fast Lexical Analyzer Generator) is a tool/computer program for generating lexical analyzers (scanners or lexers) written by Vern Paxson in C around 1987. Lex reads an input stream specifying the lexical analyzer and outputs source code implementing the lexer in the C programming language. The function yylex() is the main flex function which runs the Rule Section.
Examples:
Input: 12
Output: 1100
Input: 115
Output: 1110011
Input: 25
Output: 11001
Input: 220
Output: 11011100
Implementation:
%{
#include<stdio.h>
int num, r, b=0, p=1;
%}
DIGIT [0-9]
%%
{DIGIT}+ { num= atoi (yytext);
while (num > 0)
{
r= num % 2;
b+= r*p;
p*= 10;
num/= 2;
}
printf ( "%d" , b);
}
.|\n ECHO;
%%
int main()
{
yylex();
return 0;
}
|
Output:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...