NVIDIA Interview Question
Software Engineer / Developers#include<stdio.h>
#include <unistd.h>
#include <stdlib.h>
char getHex(int num)
{
if (num < 10 )
return (char)(num+48);
if (num < 16 )
return (char)(num+55);
}
int printhex(int x)
{
// Convert the input to HEX
char tmpresult[100];
char result[100];
int remainder=0, indx=0, i = 0, j = 0;
while(x)
{
remainder = x%16;
x = x/16;
tmpresult[indx++] = getHex(remainder);
}
for ( int i=0, j=indx-1; i < indx ; i++, j--)
result[j] = tmpresult[i];
// write to output
write(1, result, indx);
return 0;
}
int main(int argc, char* argv[])
{
printhex(atoi(argv[1]));
return 0;
}
#include<stdio.h>
#include <stdlib.h>
char getHex(int num)
{
if (num < 10 )
return (char)(num+48);
if (num < 16 )
return (char)(num+55);
}
int printhex(int x)
{
if ((x/16 == 0) && (x < 16))
{
putchar(getHex(x%16));
return 0;
}
printhex(x/16);
putchar(getHex(x%16));
}
int main(int argc, char* argv[])
{
printhex(atoi(argv[1]));
return 0;
}
#include<stdio.h>
int hex(int num);
void main()
{
int num;
printf("Enter value for num \n");
scanf("%d",&num);
printf("Hexadecimal number is : ");
hex(num);
printf("\b\n\n");
}
int hex(int num)
{
if(num<16)
{
if((num)<10)
printf("%d",num);
else
printf("%c",'A'+num-10);
return 0;
}
else
{
if((num/16)<10)
printf("%d",num/16);
else
printf("%c",'A'+(num/16)-10);
hex(num%16);
}
}
void hex(int num){
- ridercoder October 19, 2010int rem;
if(!num)
return;
hex(num/16) ;
rem=num%16;
printf("%c",(rem<10)? '0'+rem :('A'+rem-10));
return;
}