C++ unsigned
types (unsigned char
, unsigned short
,
unsigned int
, and unsigned long
) represent unsigned
integers with the same number of bits as their corresponding
signed
integer.
% @(#)$Id: unsigned.lsl,v 1.5 1995/07/26 21:16:23 leavens Exp $ unsigned: trait includes unsignedChar, unsignedShort, unsignedInt, unsignedLong introduces to_unsignedShort: unsignedChar -> unsignedShort to_unsignedInt: unsignedShort -> unsignedInt to_unsignedLong: unsignedInt -> unsignedLong asserts \forall c: unsignedChar, s: unsignedShort, i: unsignedInt to_unsignedShort(0) == 0; to_unsignedShort(succ(c)) == succ(to_unsignedShort(c)); to_unsignedInt(0) == 0; to_unsignedInt(succ(s)) == succ(to_unsignedInt(s)); to_unsignedLong(0) == 0; to_unsignedLong(succ(i)) == succ(to_unsignedLong(i)); to_unsignedShort(UCHAR_MAX) <= USHRT_MAX; to_unsignedInt(USHRT_MAX) <= UINT_MAX; to_unsignedLong(UINT_MAX) <= ULONG_MAX
The following traits specify the abstract values of
the types unsigned char
,
unsigned short
, unsigned int
, and unsigned long
.
The included trait IntCycle(first,last,N)
found in the LSL Handbook,
defines a finite subrange of integers from first
to last
.
The subrange includes 0
and wraps at succ(last)
, thus it
obeys the laws of arithmetic modulo last
.
% @(#)$Id: unsignedShort.lsl,v 1.4 1994/05/24 21:27:53 leavens Exp $ unsignedShort: trait includes IntCycle(0, USHRT_MAX, unsignedShort), NoContainedObjects(unsignedShort) % @(#)$Id: unsignedChar.lsl,v 1.4 1994/05/24 21:27:53 leavens Exp $ unsignedChar: trait includes IntCycle(0, UCHAR_MAX, unsignedChar), NoContainedObjects(unsignedChar) % @(#)$Id: unsignedInt.lsl,v 1.4 1994/05/24 21:27:53 leavens Exp $ unsignedInt: trait includes IntCycle(0, UINT_MAX, unsignedInt), NoContainedObjects(unsignedInt) % @(#)$Id: unsignedLong.lsl,v 1.4 1994/05/24 21:27:53 leavens Exp $ unsignedLong: trait includes IntCycle(0, ULONG_MAX, unsignedLong), NoContainedObjects(unsignedLong)
A C++ unsigned
integer constant, an integer constant with suffix
u
or U
(see section 4.13 Literals) is a term of sort
unsignedInt
; for example, 2U
is treated as a synonym of
succ(succ(0))
.
Go to the first, previous, next, last section, table of contents.