What is the difference between a short and ushort in C#?

Adam picture Adam · Mar 27, 2010 · Viewed 18.1k times · Source

What is the difference between a word short and ushort in C#? They are both 16 bits!

Answer

Aaronaught picture Aaronaught · Mar 27, 2010

C# does not have a word type. If you mean short or Int16, the difference is that ushort is unsigned.

short can be any value from -32768 to 32767, whereas ushort can be from 0 to 65535. They have the same total range and use the same number of bits but are interpreted in different ways, and have different maximums/minimums.

Clarification: A word is a general computer science term that is typically used to refer to the largest single group of bits that can be handled by the CPU in a single operation. So if your CPU (and operating system) are 32-bit, then a word is an Int32 or UInt32 (C#: int/uint). If you're on a 64-bit CPU/OS, a word is actually an Int64/UInt64 (C#: long/ulong). The term "word" usually refers only to the bit size of a variable as opposed to how it is actually interpreted in a program.