Каково различие между коротким и ushort в C#?

Каково различие между словом short и ushort в C#? Они - оба 16 битов!

12
задан Imaginary Pumpkin 27 May 2017 в 19:33
поделиться

2 ответа

C # не имеет типа word . Если вы имеете в виду short или Int16 , разница в том, что ushort беззнаковый.

short может иметь любое значение от -32768 до 32767 , тогда как ushort может быть от 0 до ] 65535 . Они имеют одинаковый общий диапазон и используют одинаковое количество бит, но интерпретируются по-разному и имеют разные максимумы / минимумы.

Уточнение: слово - это общий термин в информатике, который обычно используется для обозначения самой большой отдельной группы битов, которая может быть обработана ЦП за одну операцию. Итак, если ваш процессор (и операционная система) 32-разрядный, тогда слово будет Int32 или UInt32 (C #: int / uint ). Если вы используете 64-битный ЦП / ОС, слово на самом деле будет Int64 / UInt64 (C #: long / ulong ). Термин «слово» обычно относится только к размеру переменной в битах, а не к тому, как она фактически интерпретируется в программе.

17
ответ дан 2 December 2019 в 07:20
поделиться

(машинное) слово - это собственный размер регистров процессора. Обычно это то, что C использовал в качестве размера для типа данных int . В C # типы данных имеют фиксированный размер и не зависят от архитектуры процессора.

В ассемблере Intel тип данных WORD стал означать 16 бит, DWORD DWORD (двойное слово) - 32 бита, а QWORD (quad word) составляет 64 бита. Тип WORD также используется в Windows API с тем же значением.

Итак, тип данных WORD соответствует типу C # ushort .

4
ответ дан 2 December 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: