455,127 Members | 1,222 Online
Need help? Post your question and get tips & solutions from a community of 455,127 IT Pros & Developers. It's quick & easy.

# Is 0 a decimal integer?

 P: n/a I say no, 0 is _not_ a decimal literal. Anybody disagree? If you do agree with me, then what do you think it is? -- If our hypothesis is about anything and not about some one or more particular things, then our deductions constitute mathematics. Thus mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true.-Bertrand Russell Jul 23 '05 #1
11 Replies

 P: n/a Doesn't 0 mathematically mean 0 (zero, null, nil) in decimal, binary, hexadecimal, etc whatever number system you can devise? Ben Jul 23 '05 #2

 P: n/a benben wrote: Doesn't 0 mathematically mean 0 (zero, null, nil) in decimal, binary, hexadecimal, etc whatever number system you can devise? Ben I'm speaking strictly in lexical terms. How would a C++ grammarian classify 0? I believe you are correct regarding semantics. -- If our hypothesis is about anything and not about some one or more particular things, then our deductions constitute mathematics. Thus mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true.-Bertrand Russell Jul 23 '05 #3

 P: n/a Steven T. Hatton wrote: I say no, 0 is _not_ a decimal literal. Anybody disagree? If you do agree with me, then what do you think it is? A naked 0 is a octal-literal according to the C++ standard. A decimimal literal is a single non-zero digit followed by zero or more digits. Jul 23 '05 #4

 P: n/a Ron Natalie wrote: Steven T. Hatton wrote: I say no, 0 is _not_ a decimal literal. Anybody disagree? If you do agree with me, then what do you think it is? A naked 0 is a octal-literal according to the C++ standard. A decimimal literal is a single non-zero digit followed by zero or more digits. It's probably a completely pointless observation, but that's also how I understood §2.13.1. -- If our hypothesis is about anything and not about some one or more particular things, then our deductions constitute mathematics. Thus mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true.-Bertrand Russell Jul 23 '05 #5

 P: n/a "Steven T. Hatton" schrieb im Newsbeitrag news:lK********************@speakeasy.net... benben wrote: Doesn't 0 mathematically mean 0 (zero, null, nil) in decimal, binary, hexadecimal, etc whatever number system you can devise? Ben I'm speaking strictly in lexical terms. How would a C++ grammarian classify 0? I believe you are correct regarding semantics. You have to use a type qualifier. So it depends on you. I think (char) 0 would be valid as well. But I didn't check it. Matthias Jul 23 '05 #6

 P: n/a As much as I think this is pointless, this might solve the argument, sort of: std::cout << typeid(0).name(); Jul 23 '05 #7

 P: n/a Starfox wrote: As much as I think this is pointless, this might solve the argument, sort of: std::cout << typeid(0).name(); Not really, because an octal integer literal will result in the creation of a temporary of type int. -- If our hypothesis is about anything and not about some one or more particular things, then our deductions constitute mathematics. Thus mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true.-Bertrand Russell Jul 23 '05 #8

 P: n/a On Sat, 23 Jul 2005 06:38:41 -0400, "Steven T. Hatton" wrote in comp.lang.c++: I say no, 0 is _not_ a decimal literal. Anybody disagree? If you do agree with me, then what do you think it is? I think you are wasting the group's time playing with silly newbie exercises. Suppose some particular compiler gets it wrong, and parses it as a decimal literal. How could you tell the difference? -- Jack Klein Home: http://JK-Technology.Com FAQs for comp.lang.c http://www.eskimo.com/~scs/C-faq/top.html comp.lang.c++ http://www.parashift.com/c++-faq-lite/ alt.comp.lang.learn.c-c++ http://www.contrib.andrew.cmu.edu/~a...FAQ-acllc.html Jul 24 '05 #9

 P: n/a Jack Klein wrote: On Sat, 23 Jul 2005 06:38:41 -0400, "Steven T. Hatton" wrote in comp.lang.c++: I say no, 0 is _not_ a decimal literal. Anybody disagree? If you do agree with me, then what do you think it is? I think you are wasting the group's time playing with silly newbie exercises. Suppose some particular compiler gets it wrong, and parses it as a decimal literal. How could you tell the difference? .. -- If our hypothesis is about anything and not about some one or more particular things, then our deductions constitute mathematics. Thus mathematics may be defined as the subject in which we never know what we are talking about, nor whether what we are saying is true.-Bertrand Russell Jul 24 '05 #10

 P: n/a I say no, 0 is _not_ a decimal literal. Anybody disagree? If you do agree with me, then what do you think it is? In my opinion, naked zero must be a separate lexical token (from compilers point of view). If not, why is it possible to initialize pointers by zero: some_type* p=0; //or something like this: class a { some_type* pointer; a(): pointer(0) {} }; Initializing pointers by integral value is not permitted; you cant write pointer(13). Long time ago there existed something like NULL, which is now depreciated in ANSI c++. Instead of that you use 0 - so it must be something different than any integral number (regardless of octal, decimal, hex, etc). O.C. Jul 24 '05 #11

 P: n/a Tescobar wrote:I say no, 0 is _not_ a decimal literal. Anybodydisagree? If you do agreewith me, then what do you think it is? In my opinion, naked zero must be a separate lexical token (from compilers point of view). It is not. It is an octal integer literal. If not, why is it possible to initialize pointers by zero: some_type* p=0; Because the standard says that a null pointer constant is a constant integer expression evaluating to zero. It doesn't have to the 0 token. It can be any constant integer expression with value zero: some_type* p = 3-3; is perfectly valid. Jul 24 '05 #12

### This discussion thread is closed

Replies have been disabled for this discussion.