C#中的字 short
和ushort
有什么区别?它们都是16位!
答案 0 :(得分:14)
C#没有word
类型。如果您的意思是short
或Int16
,则不同之处在于ushort
是无符号的。
short
可以是-32768
到32767
的任何值,而ushort
可以是0
到65535
。它们具有相同的总范围并使用相同的位数但以不同的方式解释,并且具有不同的最大值/最小值。
澄清:字是一般的计算机科学术语,通常用于指代CPU在单个操作中可以处理的最大单个位组。因此,如果您的CPU(和操作系统)是32位,则单词为Int32
或UInt32
(C#:int
/ uint
)。如果您使用的是64位CPU / OS,则单词实际上是Int64/UInt64
(C#:long
/ ulong
)。术语“单词”通常仅指变量的位大小,而不是它在程序中的实际解释方式。
答案 1 :(得分:3)
(机器)字是处理器寄存器的原生大小。这通常是C用作int
数据类型的大小。在C#中,数据类型具有固定大小,并且不依赖于处理器体系结构。
在英特尔汇编语言中,WORD
数据类型表示16位,DWORD
(双字)为32位,QWORD
(四字)为64位。 {API}中也使用WORD
类型,其含义相同。
因此,WORD
数据类型对应于C#类型ushort
。