Вопрос по типам переменных С++ и Pascal

В С++ типы переменных можно превращать в без знаковые т. е тип int имеет диапазон от -2 147 483 648 до 2 147 483 648, а если добавить приставку usingned int то диапазон "увеличится" и станет от 0 до 4 294 987 295.
usingned удобно использовать, когда уверен что переменная не будет иметь отрицательного значения.
Так вот.. . Есть ли в Паскале что то подобное?

Зависит от реализации. К примеру, Free Pascal, целочисленные типы данных:

Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer smallint or longint 2 or 4
Cardinal longword 4
Longint -2147483648 .. 2147483647 4
Longword 0..4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8

TP:
Shortint -128..127 Знаковый 8 бит
Integer -32768..32767 Знаковый 16 бит
Longint -2147483648..2147483647 Знаковый 32 бита
Byte 0..255 Беззнаковый 8 бит
Word 0..65535 Беззнаковый 16 бит

Как видишь, есть как знаковые, так и беззнаковые типы. Но в случае с turbo pascal, нет беззнакового типа максимальной разрядности в 32 бита.

Нет. Там всё имя типа меняется целиком.

Longint в паскале самый большой.

Аффтар таким образом не увеличивает диапазон значений переменной, а предвращает его в беззнаковое, но диапазон остаётся тот-же!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Добавлю к ответу ra:

В Turbo Pascal и Dephi есть служебное слово absolute, которое создаёт абсолютную ссылку одной переменной на другую.

К примеру, в ТР я очень часто пользовался следующим описанием переменной:


var Str : String; L : Byte absolute Str;

Т.е. в дальнейшем коде можно спокойно обходиться без функции Length, ибо значение переменной L всегда возвращает длину строки...

Аналогично можно в Delphi объявить:


var Ivar : Integer; Lvar : Longword absolute Ivar;

Но нужно не забывать, что если Lvar = 2147483648, то Ivar уже примет отрицательное значение.