|
|
|
| |||||||||
![]() |
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Any solution to convert given char*(number) to required unsigned char*(hex of number)
Given For e.g,
char input[] = "10011210582553796"; now Hexadecimal of 10011210582553796 is 2391249A8B74C4. So output unsigned char* should have value, unsigned char output[8] = {0x00,0x23,0x91,0x24,0x9A,0x8B,0x74,0xC4}; Any solution to convert given input char* to output char* with above mentioned requirement. code should run on platform for which __int64/signed long long is not supported. Thanx in advance... |
|
#2
|
|||
|
|||
|
Quote:
|
|
#3
|
|||
|
|||
|
found solution
int number = 0; char numberchars[] = "10011210582553796"; int i = 0; int ans = 0; int carry = 0; char answerArray[100] = {0}; char remainderArray[100] = {0}; int remindex = 0; int ansindex = 0; int remainder = 0; while( numberchars[i] != '\0' ) { while( numberchars[i] != '\0' ) { char currentchar[2] = {0}; currentchar[0]=numberchars[i]; int num = atoi(currentchar); num += remainder; remainder = 0; if ( num < 2 ) { remainder = num; if(i>0) answerArray[ansindex++] = '0'; } else { remainder = num % 2; int answer = num / 2; char a[2] = {0}; itoa(answer,a,10); answerArray[ansindex++] = a[0]; } i++; remainder *= 10; } char a[2] = {0}; int rval = remainder / 10; itoa(remainder / 10,a,10); remainderArray[remindex++] = a[0]; int size = sizeof(answerArray); memcpy(numberchars,answerArray,sizeof(answerArray) ); size = sizeof(answerArray); memset(answerArray,0,sizeof(answerArray)); ansindex = 0; remainder = 0; i=0; } char int64[8] = {0}; for(int k=0;remainderArray[k]!= '\0';k++) { int64[7-(k/8)] |= ((remainderArray[k]-'0') << (k%8)); } |
![]() |
| Viewing: Web Development Archives > FAQs > C/C++ > Any solution to convert given char*(number) to required unsigned char*(hex of number) |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|