Boost logo

Boost Users :

Subject: Re: [Boost-users] Converting Timestamp into hex of 8 bytes
From: Krzysztof Czainski (1czajnik_at_[hidden])
Date: 2013-11-09 05:23:35


2013/11/8 Rahul Mathur <srivmuk_at_[hidden]>

>
> On Fri, Nov 8, 2013 at 11:49 AM, Igor R <boost.lists_at_[hidden]> wrote:
>
>> > I have a string Timestamp of 1383889129 which on ONLINE conversion from
>> > string to hex gives a 10 bytes as "31 33 38 33 38 38 39 31 32 39".
>>
>> The above is not "conversion from string to hex", but merely a hex
>> representation of every ascii character in "1383889129" string.
>>
>>
>> > But, the need is to have the TIMEStamp in 8 bytes only.
>>
>> It's unclear what you want exactly. If you need a time-stamp as a
>> number, use boost::lexical_cast<int>("1383889129") or any other
>> ascii-to-int conversion.
>>
> > YES, do have the TIMESTAMP from string viz 1383889129. Since, the
declaration of TIMESTAMP is "char TIMESTAMP[8]", so looking how to convert
this?

 I think you didn't provide enough information, so different solutions can
give different answers. Perhaps you don't have enough information or it's
up to you to choose?

1383889129 looks like a decimal it. You say you get it as a string. You can
convert it to a 32-bit int like this:
string s = "1383889129";
uint32_t i = boost::lexical_cast<uint32_t>(s); // you probably can use
plain old unsigned int if it has 32 bits

Now you can put this int's hex representation into an array of 8 bytes. I
assume each byte is supposed to contain a character representing a
hexadecimal digit [0-9a-f]. Here it is left unspecified, if ts[0] should be
the least or most significant digit.

Here's what you can do (ts[0] will be the most significant digit; warning:
not tested, I'm not sure if I named the manipulators right, but I hope
you'll get the idea):
TIMESTAMP ts;
ostringstream os;
os << hex << setfill('0') << setw(8) << i;
boost::copy( os.str(), ts ); // copy from Boost.Range

HTH,
Kris



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net