Lex program for Decimal to Hexadecimal Conversion Last Updated : 30 Apr, 2019 Improve Improve Like Article Like Save Share Report Problem: Write a Lex program for Decimal to Hexadecimal conversion. Explanation: 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. Prerequisite: Flex (Fast lexical Analyzer Generator) Examples: Input: 12 Output: C Input: 116 Output: 74 Input: 55 Output: 37 Input: 212 Output: D4 Implementation: /* Lex program for decimal to hexadecimal conversion */ %{ /* Definition section */ #include<stdio.h> int num, r, digit=0, count, pcount=0, i; char a[20]; %} DIGIT [0-9] /* Rule Section */ %% {DIGIT}+ { num=atoi(yytext); while(num!=0) { r=num%16; digit='0'+r; if(digit>'9') digit+=7; a[count++]=digit; num=num/16; } for(i=count-1;i>=pcount;--i) printf("%c", a[i]); pcount=count; } .|\n ECHO; %% // driver code int main() { yylex(); return 0; } Output: Like Article Suggest improvement Previous Lex Program to check whether a number is Prime or Not Next Peephole Optimization in Compiler Design Share your thoughts in the comments Add Your Comment Please Login to comment... Similar Reads Lex program for Decimal to Binary Conversion C Program For Hexadecimal to Decimal Conversion C Program For Decimal to Hexadecimal Conversion Lex Program to remove comments from C program YACC program for Binary to Decimal Conversion C Program For Octal to Decimal Conversion LEX program to add line numbers to a given file Lex Program to Identify and Count Positive and Negative Numbers Lex Program to count number of words Lex Program For checking a valid URL Like thakur_aman Follow Article Tags : Lex program C Programs Compiler Design