Subject: Re: Validity of conversions between 4 byte-like types (byte, char) objects
From: Roman Babinicz (rb_at_[hidden])
Date: 2019-12-11 12:09:49
On 11/12/2019 17:26, Thiago Macieira wrote:
> The integer conversions are very well explained in the standard. Converting
> from signed to unsigned is such that any non-negative values retain their
> values and any negative ones are represented as TYPE_MAX + 1 -
in e.g. C++14, which points of standard define the negative values as
above to be converted into TYPE_MAX + 1 - absolute(value) ?
It was my understanding that the converted value in such case depends on
the binary representation of negative integers, and it would be as you
written on platforms with 2's complement - but could differ on others.
C++14 4.7(.2) [conv.integral] mentions what would happen in two's
complement representation - but that "Note" text seems to only apply to
situation in which we know that the two's complement is used for the
And in C++14 that is not guaranteed afaik.
Which is why I thought that for some values it is implementation defined
what will be the result of assigning signed int into unsigned int.
STD-DISCUSSION list run by email@example.com
Older Archives on Google Groups