В чем разница между коротким и коротким в C #? - PullRequest
11 голосов
/ 27 марта 2010

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

Ответы [ 2 ]

14 голосов
/ 27 марта 2010

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

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

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

3 голосов
/ 27 марта 2010

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

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

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

...