Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C > Re: C standard ...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 11 of 89 Topic 26089 of 27670
Post > Topic >>

Re: C standard question?

by =?ISO-8859-1?Q?Tom=E1s_=D3_h=C9ilidhe?= <toe@[EMAIL PROTECTED] > May 10, 2008 at 10:52 AM

On May 8, 4:44=A0am, Jack Klein <jackkl...@[EMAIL PROTECTED]
> wrote:

> > 1) uc1 gets promoted to a signed int
>
> On many implementations, perhaps including all those you have ever
> used, uc1 gets promoted to signed int. =A0There are implementations were
> uc1 will get promoted to unsigned int because UCHAR_MAX is greater
> than INT_MAX.


Yes, I'm aware. My post was a follow-up to Eric Sosman's post in which
he mentioned the promotion of unsigned char to signed int.


> > 2) The complement is gotten of this signed int
>
> Of course, on implementations where uc1 is promoted to unsigned int,
> the result of the complement is also an unsigned int.


Correct. Just to be pedantic:

The complement of a signed int is a signed int.
The complement of an unsigned int is an unsigned int.


> > 3) When the signed int is converted back to unsigned char, the
> > behaviour is implementation defined.
>
> This is completely wrong regardless of whether unsigned char promotes
> to signed or unsigned int. =A0Assignment of the value of a higher rank
> integer type, whether signed or unsigned, to a lesser rank unsigned
> integer type is 100% completely defined by the C standard. =A0There is
> absolutely no implementation-defined behavior involved.


Sorry yes, you're right. Conversion from signed to unsigned happens
the same way on every system. I'd gotten confused with converting
unsigned to signed. For instance the behaviour of the following is
implementation defined:

    int i =3D 72;
    unsigned j =3D UINT_MAX;

    i =3D j;   /* The value that this puts in 'i' is
                totally up to the compiler */


> > There's no problem on a two's complement system, and of course most
> > systems are two's complement, but still I'd definitely go with:
>
> > =A0 =A0 uc2 =3D ~(unsigned)uc1;
>
> On implementations where unsigned char promotes to signed int, the
> result of the complement is either a trap representation or
> implementation-defined,


The only implementation-defined thing about it is the amount of 1's at
the start of it, depending on the amount of value-representational
bits in it. We can be sure what's happening with 8 least significant
bits though, regardless of whether is signed or unsigned.


> and that is regardless of the type of
> representation for negative signed integers. =A0But if the complement
> does not produce undefined behavior by generating a trap
> representation, the assignment to unsigned char is always
> well-defined.


Yes it is.
 




 89 Posts in Topic:
C standard question?
jan.chludzinski@[EMAIL PR  2008-05-07 11:44:09 
Re: C standard question?
Eric Sosman <Eric.Sosm  2008-05-07 15:20:46 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-07 13:23:50 
Re: C standard question?
Jack Klein <jackklein@  2008-05-07 22:35:23 
Re: C standard question?
rlb@[EMAIL PROTECTED] (R  2008-05-16 10:41:14 
Re: C standard question?
Jack Klein <jackklein@  2008-05-07 22:44:45 
Re: C standard question?
Flash Gordon <spam@[EM  2008-05-07 21:01:48 
Re: C standard question?
CBFalconer <cbfalconer  2008-05-07 18:12:55 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-10 17:06:23 
Re: C standard question?
Richard Heathfield <rj  2008-05-10 17:38:00 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-10 10:52:21 
Re: C standard question?
Eric Sosman <esosman@[  2008-05-10 14:00:19 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-10 10:55:04 
Re: C standard question?
Richard Heathfield <rj  2008-05-10 18:21:24 
Re: C standard question?
Flash Gordon <spam@[EM  2008-05-10 23:55:25 
Re: C standard question?
Thad Smith <ThadSmith@  2008-05-16 21:45:09 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-10 10:55:49 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-10 19:02:58 
Re: C standard question?
Richard Heathfield <rj  2008-05-10 18:18:39 
Re: C standard question?
lawrence.jones@[EMAIL PRO  2008-05-10 14:57:28 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-10 12:08:27 
Re: C standard question?
Eric Sosman <esosman@[  2008-05-10 15:55:11 
Re: C standard question?
richard@[EMAIL PROTECTED]  2008-05-10 20:08:54 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-10 15:55:21 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-10 19:58:26 
Re: C standard question?
CBFalconer <cbfalconer  2008-05-10 16:49:42 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-10 19:49:54 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-10 20:23:51 
Re: C standard question?
"Joachim Schmitz&quo  2008-05-11 10:40:42 
Re: C standard question?
pete <pfiland@[EMAIL P  2008-05-11 06:10:04 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-11 11:39:18 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-11 11:43:01 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-11 11:42:51 
Re: C standard question?
Spiros Bousbouras <spi  2008-05-11 05:12:19 
Re: C standard question?
santosh <santosh.k83@[  2008-05-12 22:55:09 
Re: C standard question?
Spiros Bousbouras <spi  2008-05-11 05:16:21 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-11 13:47:08 
Re: C standard question?
rlb@[EMAIL PROTECTED] (R  2008-05-13 13:43:40 
Re: C standard question?
Harald van =?UTF-8?b?RMSz  2008-05-11 15:04:33 
Re: C standard question?
Spiros Bousbouras <spi  2008-05-11 06:05:05 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-11 14:23:07 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-11 14:29:36 
Re: C standard question?
David Thompson <dave.t  2008-06-04 05:49:43 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-11 09:10:07 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-11 09:17:12 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-11 12:00:20 
Re: C standard question?
Flash Gordon <spam@[EM  2008-05-11 21:06:51 
Re: C standard question?
fchang@[EMAIL PROTECTED]   2008-05-11 09:49:03 
Re: C standard question?
Ian Collins <ian-news@  2008-05-12 08:01:47 
Re: C standard question?
Harald van =?UTF-8?b?RMSz  2008-05-11 19:02:42 
Re: C standard question?
Eligiusz Narutowicz<el  2008-05-11 20:01:34 
Re: C standard question?
Harald van =?UTF-8?b?RMSz  2008-05-11 20:55:08 
Re: C standard question?
Eligiusz Narutowicz<el  2008-05-11 21:18:44 
Re: C standard question?
Spiros Bousbouras <spi  2008-05-11 12:27:44 
Re: C standard question?
Bart <bc@[EMAIL PROTEC  2008-05-11 13:12:45 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-11 17:21:25 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-12 07:07:52 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-12 07:10:42 
Re: C standard question?
Richard Heathfield <rj  2008-05-12 06:31:11 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-12 09:03:25 
Re: C standard question?
"Default User"   2008-05-12 22:29:06 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-12 16:01:55 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-12 07:54:10 
Re: C standard question?
=?ISO-8859-1?Q?Tom=E1s_=D  2008-05-12 02:29:08 
Re: C standard question?
Cromulent <cromulent@[  2008-05-12 10:59:35 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-12 08:58:37 
Re: C standard question?
Ben Bacarisse <ben.use  2008-05-12 18:06:47 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-12 18:53:59 
Re: C standard question?
pete <pfiland@[EMAIL P  2008-05-12 18:50:14 
Re: C standard question?
pete <pfiland@[EMAIL P  2008-05-12 18:51:25 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-13 15:14:27 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-13 09:04:48 
Re: C standard question?
Willem <willem@[EMAIL   2008-05-13 16:41:48 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-13 17:39:00 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-13 10:26:23 
Re: C standard question?
David Brown <david.bro  2008-05-13 23:45:00 
Re: C standard question?
pete <pfiland@[EMAIL P  2008-05-13 17:57:57 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-13 18:27:44 
Re: C standard question?
Willem <willem@[EMAIL   2008-05-13 18:31:29 
Re: C standard question?
Keith Thompson <kst-u@  2008-05-13 12:14:27 
Re: C standard question?
Harald van =?UTF-8?b?RMSz  2008-05-13 19:33:55 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-13 19:55:25 
Re: C standard question?
pete <pfiland@[EMAIL P  2008-05-13 18:10:48 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-16 12:30:58 
Re: C standard question?
Richard Heathfield <rj  2008-05-16 12:07:19 
Re: C standard question?
pete <pfiland@[EMAIL P  2008-05-16 08:37:25 
Re: C standard question?
Peter Nilsson <airia@[  2008-05-16 22:41:50 
Re: C standard question?
Flash Gordon <spam@[EM  2008-05-17 10:36:59 
Re: C standard question?
Chris H <chris@[EMAIL   2008-05-17 09:05:19 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Oct 10 22:19:00 CDT 2008.