you guys can use any method. @yrollgayanth well done machan.. elama thama

aiyoooo...
i thought we should use our own algo![]()

you guys can use any method. @yrollgayanth well done machan.. elama thama

aiyoooo...
i thought we should use our own algo![]()
#include<stdio.h>
#include<stdlib.h>
inline void addhex(char *s, int num){
switch (num){
case 15: { *s = 'F'; break; }
case 14: { *s = 'E'; break; }
case 13: { *s = 'D'; break; }
case 12: { *s = 'C'; break; }
case 11: { *s = 'B'; break; }
case 10: { *s = 'A'; break; }
default: { *s = (char)48+num; break; }
}
}
int main()
{
unsigned long long int num, pnum, pos=0;
char out[256]="";
char out2[256]="";
scanf("%lld", &num);
while (num>16){
pnum=num;
num=num>>4;
addhex( &out[pos], pnum-(num<<4));
pos++;
}
addhex( &out[pos], num);
for (num=0;num<=pos;num++) out2[num] = out[pos - num];
printf("0x%s ", out2);
return 0;
}
999999999999
0xE8D4A50FFF
real 0m0.001s
user 0m0.000s
sys 0m0.004s

well if there's one thing I can't stand thats algos lol here goes,
for those who are interested, heres the timings for decimal 999999999999 on a 2.0 GHzCode:#include<stdio.h> #include<stdlib.h> inline void addhex(char *s, int num){ switch (num){ case 15: { *s = 'F'; break; } case 14: { *s = 'E'; break; } case 13: { *s = 'D'; break; } case 12: { *s = 'C'; break; } case 11: { *s = 'B'; break; } case 10: { *s = 'A'; break; } default: { *s = (char)48+num; break; } } } int main() { unsigned long long int num, pnum, pos=0; char out[256]=""; char out2[256]=""; scanf("%lld", &num); while (num>16){ pnum=num; num=num>>4; addhex( &out[pos], pnum-(num<<4)); pos++; } addhex( &out[pos], num); for (num=0;num<=pos;num++) out2[num] = out[pos - num]; printf("0x%s ", out2); return 0; }
anyone can edit the code and make improvements,Code:999999999999 0xE8D4A50FFF real 0m0.001s user 0m0.000s sys 0m0.004s![]()



madura is a great programmer machan!wow this is grt. fantastic machan. ela kiri.
![]()
public class HexConverter {
private String s = "";
private long number;
public HexConverter(long number) {
this.number = number;
}
public String convertToHex() {
long remainder = number;
while (remainder >= 16) {
long x;
x = remainder % 16;
increment(x);
remainder = remainder / 16;
}
increment(remainder);
return s;
}
public void increment(long x) {
if (x <= 9) {
s = x+s;
} else {
char c = (char) (x + 55);
s =c+s;
}
}
public static void main(String[] args) {
long start = System.nanoTime();
System.out.println(new HexConverter(999999999999l).convertToHex());
long end = System.nanoTime();
System.out.println("Time Taken:" + (end - start) + "nanosecond");
}
}
E8D4A50FFF
Time Taken:613558nanosecond
long start = System.nanoTime();
System.out.println(Long.toHexString(999999999999l);
long end = System.nanoTime();
System.out.println("Time Taken:"+(end-start)+"nanoseconds");
e8d4a50fff
Time Taken:524443nanoseconds
#include <stdio.h>
#include <stdlib.h>
int number;
char* HexNumber =NULL;
int main()
{
printf("Please enter an integer :");
scanf("%d",&number);
HexNumber =(char*)malloc(50);
sprintf(HexNumber,"%x",number);
printf("1st method : hex representation is 0x%s\n",HexNumber);
printf("2nd method : hex representation is 0x%p\n",number);
printf("3rd method : hex representation is 0x%x\n",number);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned int number,modval,Divval,index=0;
char* HexNumber =NULL;
char* tem;
int main()
{
printf("Please enter an integer :");
scanf("%d",&number);
HexNumber =(char*)malloc(50);
tem =(char*)malloc(3);
modval = number%16;
Divval = (int)number/16;
if(Divval<16)
{
sprintf(tem,"%d%d",Divval,modval);
strcpy(HexNumber,tem);
printf("Hex value is :%s\n",HexNumber);
system("pause");
exit(0);
}
else
{
sprintf(tem,"%d",modval);
strcpy(HexNumber,tem);
HexNumber = HexNumber+1;
index++;
}
while(Divval>16)
{
modval = Divval%16;
switch(modval)
{
case 10:
strcpy(HexNumber,"A");
break;
case 11:
strcpy(HexNumber,"B");
break;
case 12:
strcpy(HexNumber,"C");
break;
case 13:
strcpy(HexNumber,"D");
break;
case 14:
strcpy(HexNumber,"E");
break;
case 15:
strcpy(HexNumber,"F");
break;
default:
sprintf(tem,"%d",modval);
strcpy(HexNumber,tem);
break;
}
HexNumber = HexNumber+1;
Divval = (int)Divval/16;
index++;
}
sprintf(tem,"%d",Divval);
strcpy(HexNumber,tem);
printf("The Hex value is 0x");
while(strlen(HexNumber)!=(index+2))
{
printf("%c",HexNumber[0]);
HexNumber--;
}
printf("\n");
system("pause");
return 0;
}


madura is a great programmer machan!
most of the elakirians use his s/w for write sinhala.
http://www.madurax86.com/rsinglish/



Code:public class HexConverter { private String s = ""; private long number; public HexConverter(long number) { this.number = number; } public String convertToHex() { long remainder = number; while (remainder >= 16) { long x; x = remainder % 16; increment(x); remainder = remainder / 16; } increment(remainder); return s; } public void increment(long x) { if (x <= 9) { s = x+s; } else { char c = (char) (x + 55); s =c+s; } } public static void main(String[] args) { long start = System.nanoTime(); System.out.println(new HexConverter(999999999999l).convertToHex()); long end = System.nanoTime(); System.out.println("Time Taken:" + (end - start) + "nanosecond"); } }Code:E8D4A50FFF Time Taken:613558nanosecond


Anyway java has a inbuilt function to do this
Code:long start = System.nanoTime(); System.out.println(Long.toHexString(999999999999l); long end = System.nanoTime(); System.out.println("Time Taken:"+(end-start)+"nanoseconds");
It takes
Code:e8d4a50fff Time Taken:524443nanoseconds
hey, nice seeing you again![]()
BTW that time i gave was the process time,(=time it takes to load the program up + time it takes to run until it ends).
ahhhh Yr I get it !! Anyway if you consider the same algorithm implemented in c++ and java ,java uses more resources because it runs on the JVM . Hoping to see more and more works from u in Elakiri !!!
well if there's one thing I can't stand thats algos lol here goes,
for those who are interested, heres the timings for decimal 999999999999 on a 2.0 GHzCode:#include<stdio.h> #include<stdlib.h> inline void addhex(char *s, int num){ switch (num){ case 15: { *s = 'F'; break; } case 14: { *s = 'E'; break; } case 13: { *s = 'D'; break; } case 12: { *s = 'C'; break; } case 11: { *s = 'B'; break; } case 10: { *s = 'A'; break; } default: { *s = (char)48+num; break; } } } int main() { unsigned long long int num, pnum, pos=0; char out[256]=""; char out2[256]=""; scanf("%lld", &num); while (num>16){ pnum=num; num=num>>4; addhex( &out[pos], pnum-(num<<4)); pos++; } addhex( &out[pos], num); for (num=0;num<=pos;num++) out2[num] = out[pos - num]; printf("0x%s ", out2); return 0; }
anyone can edit the code and make improvements,Code:999999999999 0xE8D4A50FFF real 0m0.001s user 0m0.000s sys 0m0.004s![]()

. elama thama machan. keep it up. 


