Re: convert int to hex
Il 27/01/2015 23:42, ghada glissa ha scritto:
Le mardi 27 janvier 2015 22:55:23 UTC+1, ghada glissa a ?crit :
Dear all,
Is there any predefined function that convert in to hex or octet string in c++.
Regards.
Thank you for your reply.
This function intToHex return a string or i want to get an array of char that will be easy to handle.
for exp res=intToHex(X)=12f5e188
i want it
res[0]=12
res[1]=f5
res[2]=e1
res[3]=88
Regards.
Forgive me but I did not understand clearly what you want but you can
take a look at this example. Maybe something can be worthwhile:
#include <stdio>
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string BaseConv(int, void *, int);
// BaseConv parameters:
// 1) Byte offset from base address
// 2) Base address
// 3) Conversion base: 2 to 16
int main(int argc, char *argv[])
{
long Value = 0x12f5e188;
int CBase;
vector <string> Cnv;
unsigned int i;
for (CBase = 2; CBase <= 16; CBase++)
{
cout << endl << "Base " << CBase << ": " << endl;
Cnv.clear();
for (i = 0; i < sizeof Value; i++)
Cnv.push_back(BaseConv(i, &Value, CBase));
for (i = 0; i < Cnv.size(); i++)
cout << i + 1 << ") " << Cnv[i] << endl;
cout << endl;
system("pause");
}
return 0;
}
string BaseConv(int BytePos, void *Data, int Base)
{
unsigned char Byte = ((unsigned char *)Data)[BytePos];
string Res = "";
const char LT[] = "0123456789ABCDEF";
if (Base > 1 && Base <= 16)
for (; Byte > 0; Byte /= Base)
Res = LT[Byte % Base] + Res;
return Res;
}