From: Scotty on
Hi,

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

Why is that please ?
From: PvdG42 on

"Scotty" <matthieu.sarthou(a)googlemail.com> wrote in message
news:d0dc9d86-b46f-4076-9b40-f44443198156(a)u34g2000yqu.googlegroups.com...
> 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.


From: Family Tree Mike on


"Scotty" wrote:

> 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
From: ib.dangelmeyr on
> 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.