DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   decimal > binary > Oct > Hex (http://www.daniweb.com/forums/thread10660.html)

Transworld Sep 12th, 2004 1:45 am
decimal > binary > Oct > Hex
 
Would I have to go about doing the math manually and make my own function? Is there some built in function I can use to be lazy? Is there some totally easier way that I am oblivious to?

alc6379 Sep 12th, 2004 4:34 am
Re: decimal > binary > Oct > Hex
 
I found this link, which you could use to do the decimal to hex number.

But, I'd imagine somewhere there's bound to be some kind of library function that could do this for you... Have you searched Google for it yet?

Dave Sinkula Sep 12th, 2004 12:33 pm
Re: decimal > binary > Oct > Hex
 
Quote:

Originally Posted by Transworld
Would I have to go about doing the math manually and make my own function? Is there some built in function I can use to be lazy? Is there some totally easier way that I am oblivious to?

I will assume you mean you would like to display the value of some integral type in decimal, binary, octal, and hexadecimal representations. Three out of four are available the lazy way, but you'll need to roll your own to display a binary representation.
#include <iostream> 
 
 template < typename T >
 inline T highbit(T& t)
 {
    return t = (((T)(-1)) >> 1) + 1;
 }
 
 template < typename T >
 std::ostream& bin(T& value, std::ostream &o)
 {
    for ( T bit = highbit(bit); bit; bit >>= 1 )
    {
          o << ( ( value & bit ) ? '1' : '0' );
    }
    return o;
 }
 
 
 int main()
 {
    unsigned long value = 0x12345678;
    std::cout << "hex: " << std::hex << value << std::endl;
    std::cout << "dec: " << std::dec << value << std::endl;
    std::cout << "oct: " << std::oct << value << std::endl;
    std::cout << "bin: ";
    bin(value, std::cout);
    std::cout << std::endl;
    return 0;
 }
 
 /* my output
 hex: 12345678
 dec: 305419896
 oct: 2215053170
 bin: 00010010001101000101011001111000
 */

Transworld Sep 12th, 2004 11:05 pm
Re: decimal > binary > Oct > Hex
 
Yeah, I did search Google. Amazingly hard to find things sometimes... But thanks everyone.:cheesy:


All times are GMT -4. The time now is 3:56 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC