Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > binary number

Reply
Thread Tools

binary number

 
 
Bern
Guest
Posts: n/a
 
      09-01-2004
how to specifiy a binary number in c++?

hex numbers are specified by 0x prefix


 
Reply With Quote
 
 
 
 
Victor Bazarov
Guest
Posts: n/a
 
      09-01-2004
" Bern" <(E-Mail Removed)> wrote...
> how to specifiy a binary number in c++?
>
> hex numbers are specified by 0x prefix


There is no standard syntax for binary numbers.

V


 
Reply With Quote
 
 
 
 
Karthik Kumar
Guest
Posts: n/a
 
      09-01-2004
Bern wrote:

> how to specifiy a binary number in c++?
>
> hex numbers are specified by 0x prefix
>
>

Specifying binary numbers hampers readability of the code. In
fact, though you can specify octal constants in C++ code ( 0 prefix),
for all practical purposes use hex numbers since people can understand /
read it better when written that way.

--
Karthik.
 
Reply With Quote
 
Risto Lankinen
Guest
Posts: n/a
 
      09-01-2004

" Bern" <(E-Mail Removed)> wrote in message news:41355ce2$(E-Mail Removed)...
> how to specifiy a binary number in c++?
>
> hex numbers are specified by 0x prefix


There's no language support for binary literals. Many programmers
use hexadecimal 0x0001, 0x0002, 0x0004, ... 0x8000 to define bits,
and then operator|() (a.k.a. operator bit_or) to construct the actual
number from separate bits.

Another less common but easier way for some is to use octal (whose
prefix is plain '0'), which is a bit easier to cope with than hexadecimal
numbers.

[By the way, C and C++ are perhaps the only programming languages
having no token representing decimal zero! :-]

- Risto -


 
Reply With Quote
 
red floyd
Guest
Posts: n/a
 
      09-01-2004
Risto Lankinen wrote:
>
> [By the way, C and C++ are perhaps the only programming languages
> having no token representing decimal zero! :-]
>
> - Risto -
>
>


what would the token 0 be, then?
 
Reply With Quote
 
Mike Wahler
Guest
Posts: n/a
 
      09-01-2004

"red floyd" <(E-Mail Removed)> wrote in message
news:KWmZc.14518$(E-Mail Removed). com...
> Risto Lankinen wrote:
> >
> > [By the way, C and C++ are perhaps the only programming languages
> > having no token representing decimal zero! :-]
> >
> > - Risto -
> >
> >

>
> what would the token 0 be, then?


Octal zero. (it begins with the '0' character).



-Mike


 
Reply With Quote
 
Kai-Uwe Bux
Guest
Posts: n/a
 
      09-01-2004
Mike Wahler wrote:

>
> "red floyd" <(E-Mail Removed)> wrote in message
> news:KWmZc.14518$(E-Mail Removed). com...
>> Risto Lankinen wrote:
>> >
>> > [By the way, C and C++ are perhaps the only programming languages
>> > having no token representing decimal zero! :-]
>> >
>> > - Risto -
>> >
>> >

>>
>> what would the token 0 be, then?

>
> Octal zero. (it begins with the '0' character).
>
>
>
> -Mike


I am confused?

What exactly is the difference between the numerical constant 0_8 denoted
by the string "0" in octal notation versus the numerical constant 0_10
denoted by the string "0" is decimal notation (as existent in other
languages). In particular, what is

0_8 - 0_10


Best

Kai-Uwe Bux
 
Reply With Quote
 
Howard
Guest
Posts: n/a
 
      09-01-2004

"Kai-Uwe Bux" <(E-Mail Removed)> wrote in message
news:ch5ea1$6t7$(E-Mail Removed)...
> >> what would the token 0 be, then?

> >
> > Octal zero. (it begins with the '0' character).
> > -Mike

>
> I am confused?
>
> What exactly is the difference between the numerical constant 0_8 denoted
> by the string "0" in octal notation versus the numerical constant 0_10
> denoted by the string "0" is decimal notation (as existent in other
> languages). In particular, what is
>
> 0_8 - 0_10
> Kai-Uwe Bux


That's a VERY confusing question. Your terminology and representations are
difficult to comprehend. But I'll try to address what I THINK you're
asking:

There is no difference in the value STORED when you write any if the
following:

int hexInt = 0x08;
int octInt = 08;
int decInt = 8;

Those are all representations of the number eight. The only difference is
what your source code looks like, not what results after compiling.

The integer literal 0, according to the grammar, is an octal representation
of the value zero. You could also say 0x0 (or 0x00000000, for that matter),
using the hexadecimal representation for zero, but it's still the value
zero. And there IS NO saparate notation for the value zero represented as a
decimal, because that would be the same as the octal representation, namely
0. When you write "int x = 0;", you're just assigning the VALUE zero to the
variable x. It's irrelevant whether the literal 0 is an octal or decimal
representation. It's still just zero!

(I suppose, the grammar COULD have been defined so that 00 was the octal
representation for zero, and 0 was the decimal representation, but that's
not the way it WAS defined, and it really doesn't matter at all.)

-Howard







 
Reply With Quote
 
Mike Wahler
Guest
Posts: n/a
 
      09-01-2004
"Kai-Uwe Bux" <(E-Mail Removed)> wrote in message
news:ch5ea1$6t7$(E-Mail Removed)...
> Mike Wahler wrote:
>
> >
> > "red floyd" <(E-Mail Removed)> wrote in message
> > news:KWmZc.14518$(E-Mail Removed). com...
> >> Risto Lankinen wrote:
> >> >
> >> > [By the way, C and C++ are perhaps the only programming languages
> >> > having no token representing decimal zero! :-]
> >> >
> >> > - Risto -
> >> >
> >> >
> >>
> >> what would the token 0 be, then?

> >
> > Octal zero. (it begins with the '0' character).
> >
> >
> >
> > -Mike

>
> I am confused?


Perhaps.

> What exactly is the difference between the numerical constant 0_8 denoted


0_8 is not a numerical constant. It's not a valid C++ token at all.

> by the string "0"


A string is not a numeric literal, it's a string literal.

> in octal notation


In C++, octal notation is expressed by the first digit being zero.

>versus the numerical constant 0_10.


0_10 is not a numerical constant. It's not a valid C++ token at all.

> denoted by the string "0"


A string is not a numeric literal, it's a string literal.

> is decimal notation


In C++, decimal notation is expressed by the first digit being
1, 2, 3, 4, 5, 6, 7, 8, or 9

>(as existent in other
> languages).


This is C++, not other languages.

>In particular, what is
>
> 0_8 - 0_10


From a C++ perspective, it's gibberish.

From the C++ standard:

================= begin quote ================
ISO/IEC 14882:1998(E)

2.13.1 Integer literals

integer*-literal:
decimal*-literal integer*-suffix opt
octal*-literal integer*-suffix opt
hexadecimal-*literal integer*-suffix opt

decimal-*literal:
nonzero-*digit
decimal-*literal digit

octal*-literal:
0
octal*-literal octal*-digit

hexadecimal*-literal:
0x hexadecimal-*digit
0X hexadecimal-*digit
hexadecimal-*literal hexadecimal-*digit

nonzero*-digit: one of
1 2 3 4 5 6 7 8 9

octal-*digit: one of
0 1 2 3 4 5 6 7

hexadecimal*-digit: one of
0 1 2 3 4 5 6 7 8 9
a b c d e f
A B C D E F

integer-*suffix:
unsigned*-suffix long*s-uffix opt
long*-suffix unsigned*-suffix opt

unsigned-*suffix: one of
u U

long*-suffix: one of
l L

1 An integer literal is a sequence of digits that has no period
or exponent part. An integer literal may have a prefix that
specifies its base and a suffix that specifies its type. The
lexically first digit of the sequence of digits is the most
significant. A decimal integer literal (base ten) begins with
a digit other than 0 and consists of a sequence of decimal
digits. An octal integer literal (base eight) begins with the
digit 0 and consists of a sequence of octal digits. (22)
A hexadecimal integer literal (base sixteen) begins with 0x
or 0X and consists of a sequence of hexadecimal digits, which
include the decimal digits and the letters a through f and A
through F with decimal values ten through fifteen. [Example:
the number twelve can be written 12, 014, or 0XC. ]

2 The type of an integer literal depends on its form, value, and
suffix. If it is decimal and has no suffix, it has the first of
these types in which its value can be represented: int, long int;
if the value cannot be represented as a long int, the behavior
is undefined. If it is octal or hexadecimal and has no suffix,
it has the first of these types in which its value can be
represented: int, unsigned int, long int, unsigned long int.
If it is suffixed by u or U, its type is the first of these
types in which its value can be represented: unsigned int,
unsigned long int. If it is suffixed by l or L, its type is the
first of these types in which its value can be represented: long
int, unsigned long int. If it is suffixed by ul, lu, uL, Lu, Ul,
lU, UL, or LU, its type is unsigned long int. 3 A program is
ill*formed if one of its translation units contains an integer
literal that cannot be represented by any of the allowed types.

(21) The term "literal" generally designates, in this International
Standard, those tokens that are called "constants" in ISO C.

(22) The digits 8 and 9 are not octal digits.
================= end quote ==================


The base of literal 0 doesn't really matter, since zero is zero,
whatever the base.

-Mike


 
Reply With Quote
 
josh
Guest
Posts: n/a
 
      09-01-2004
Risto Lankinen wrote:

> " Bern" <(E-Mail Removed)> wrote in message news:41355ce2$(E-Mail Removed)...
>
>>how to specifiy a binary number in c++?
>>
>>hex numbers are specified by 0x prefix


There were some excellent macros posted to comp.lang.c a while ago:

http://groups.google.com/groups?selm...gle.com&rnum=1

that let you define binary constants like B8(01001010)

> Another less common but easier way for some is to use octal (whose
> prefix is plain '0'), which is a bit easier to cope with than hexadecimal
> numbers.


I always found octal harder than hex. :/ I guess mainly 'cuz I'm used
to grouping my binary numbers in bundles of 4 (or powers of 2) rather
than bundles of 3 bits.

> [By the way, C and C++ are perhaps the only programming languages
> having no token representing decimal zero! :-]


"0."

-josh

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
conversion of real number into binary number rajeswari01 Hardware 1 07-15-2011 05:30 AM
conversion of real number into binary number rajeswari01 Hardware 0 10-15-2010 12:30 AM
How do you convert a hexadecimal number to a binary number? Bob Sanders Ruby 5 05-30-2008 11:50 AM
OT: Number Nine, Number Nine, Number Nine FrisbeeŽ MCSE 37 09-26-2005 04:06 PM
Convert decimal number in binary number makok VHDL 1 02-23-2004 06:04 PM



Advertisments