Velocity Reviews > C++ > how to represent binary code , hex code in c++ and display them on screen using prinf statement

# how to represent binary code , hex code in c++ and display them on screen using prinf statement

arvind
Guest
Posts: n/a

 10-04-2003
hi,
How do I display a number in binary or octagonal ?

eg.
int a= 195; //1100 0011
int b = 87; //0101 0111
int c = a&b;//0100 0011 => bitwise and

printf("%0x", c); // Here I get the hexagonal output
//I want to get the binary output of char c
// I also want the Octagonal Outpur of char c

Please let me how to the output in the binary and octagonal form.

-arvind

WW
Guest
Posts: n/a

 10-04-2003
arvind wrote:
> hi,
> How do I display a number in binary or octagonal ?
>
> eg.
> int a= 195; //1100 0011
> int b = 87; //0101 0111
> int c = a&b;//0100 0011 => bitwise and
>
> printf("%0x", c); // Here I get the hexagonal output
> //I want to get the binary output of char c
> // I also want the Octagonal Outpur of char c
>
> Please let me how to the output in the binary and octagonal form.

For binaryu you need to write your own functions to convert numbers into a
sequence of 1 and 0 characters. If you want something octagonal, you will
need graphics:

http://www.fastgeometry.com/images/octagon.gif
http://www.fastgeometry.com/Encyclopedia/Polygons.htm

However if you want *octal*, you will need to use o instead of the x.

--
WW aka Attila

Kevin Goodsell
Guest
Posts: n/a

 10-04-2003
arvind wrote:

> hi,
> How do I display a number in binary or octagonal ?

It's called "octal". "Octagon" is a geometric figure with 8 sides of
equal length.

>
> eg.
> int a= 195; //1100 0011
> int b = 87; //0101 0111
> int c = a&b;//0100 0011 => bitwise and
>
> printf("%0x", c); // Here I get the hexagonal output
> //I want to get the binary output of char c
> // I also want the Octagonal Outpur of char c

No, here you get undefined behavior. The "%x" format specifier expects
an unsigned int. If you pass it the wrong type (as you have here), the
behavior is undefined. This is one reason to never use printf or any
other function or language feature which defeats type-checking if you
can possibly avoid it.

And it's called "Hexadecimal". "Hexagon" is a geometric figure with 6
sides of equal length.

>
> Please let me how to the output in the binary and octagonal form.

There is no standard way to output binary, you have to work it out for
yourself.

Octal can be done using the "%o" printf format specifier (which also
expects an unsigned int, so you'll need to convert or use the right type
to start with if you want to use it). Better yet, look up the 'oct'
stream modifier:

std::cout << std:ct << c << std::endl;

-Kevin
--
My email address is valid, but changes periodically.

Mohamed Ghouse
Guest
Posts: n/a

 10-04-2003
Borland C/C++ has in its library a function called itoa. I don't remember
the exact signature of the function.
But one of the parameter had the parameter called __base__. With this a
conversion from decimal to any
base was possible.

-Ghouse

One of the params was to the base of a number. But there is no such standard
function defined.

"Kevin Goodsell" <(E-Mail Removed)> wrote in message
newsCEfb.1549\$(E-Mail Removed) k.net...
> arvind wrote:
>
> > hi,
> > How do I display a number in binary or octagonal ?

>
> It's called "octal". "Octagon" is a geometric figure with 8 sides of
> equal length.
>
> >
> > eg.
> > int a= 195; //1100 0011
> > int b = 87; //0101 0111
> > int c = a&b;//0100 0011 => bitwise and
> >
> > printf("%0x", c); // Here I get the hexagonal output
> > //I want to get the binary output of char c
> > // I also want the Octagonal Outpur of char c

>
> No, here you get undefined behavior. The "%x" format specifier expects
> an unsigned int. If you pass it the wrong type (as you have here), the
> behavior is undefined. This is one reason to never use printf or any
> other function or language feature which defeats type-checking if you
> can possibly avoid it.
>
> And it's called "Hexadecimal". "Hexagon" is a geometric figure with 6
> sides of equal length.
>
> >
> > Please let me how to the output in the binary and octagonal form.

>
> There is no standard way to output binary, you have to work it out for
> yourself.
>
> Octal can be done using the "%o" printf format specifier (which also
> expects an unsigned int, so you'll need to convert or use the right type
> to start with if you want to use it). Better yet, look up the 'oct'
> stream modifier:
>
> std::cout << std:ct << c << std::endl;
>
> -Kevin
> --
> My email address is valid, but changes periodically.
> To contact me please use the address from a recent posting.
>

Kevin Goodsell
Guest
Posts: n/a

 10-04-2003
Mohamed Ghouse wrote:

http://www.parashift.com/c++-faq-lit...t.html#faq-5.4

> Borland C/C++ has in its library a function called itoa.

This group is for discussion of Standard C++, not Borland C++.

http://www.slack.net/~shiva/welcome.txt
http://www.slack.net/~shiva/offtopic.txt

-Kevin
--
My email address is valid, but changes periodically.