Difference of cast between c++ and c# ?

S

Scotty

Hi,

If I do a (char)-1 in c++ and c# I get a different result: 'ÿ' and '.'

Why is that please ?
 
P

PvdG42

Scotty said:
Hi,

If I do a (char)-1 in c++ and c# I get a different result: 'ÿ' and '.'

Why is that please ?

What character set defines characters associated with negative numeric
values?

If you cast a defined value, do you get the same result in both languages?

By C++, are you referring to ISO standard or C++/CLI?

Bottom line: different languages provide different responses to illogical
input.
 
F

Family Tree Mike

Scotty said:
Hi,

If I do a (char)-1 in c++ and c# I get a different result: 'ÿ' and '.'

Why is that please ?
.

First, your code would have been:

char c = unchecked((char) -1);

to avoid a compiler error. That would tell you something is amiss.

As PvdG42 wrote, the behavior is rather ill-defined. In fact, when I run
the code above, I get a question mark for any negative number.

Mike
 
I

ib.dangelmeyr

If I do a (char)-1 in c++ and c# I get a different result: 'ÿ' and '.'
Why is that please ?

Maybe because 'char' is 8 bits in C++ and 16 bits in C#?
C++: -1 (255) results in (ANSI-Codepage) in 'ÿ'
C#: -1 (65535) results in an illegal Unicode character.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top