无符号数

✍ dations ◷ 2025-04-04 06:00:57 #计算机编程,计算机算术,程式设计小作品,数据类型

无符号数(unsigned)是计算机编程中的一种数值资料型别。有符号数(signed)可以表示特定类型规定范围内的整数(包括负数),而无符号数只能表示非负数(0及正数)。

有符号数能够表示负数的代价是能够表示的正数范围的缩小,因为其约一半的数值范围要用来表示负数(如8位有符号整数中,对应8位无符号整数表示128~255的部分被用于表示-127~-1)。无符号数可以利用其所占有的所有位来表示较大的数。

例如,16位有符号整数可表示-32768~32767之间的任意整数,而16位无符号整数可表示0~65535之间的数。若将有符号数转换为二进制,则其数值类型允许的最左一位用于表示符号(1为负数,0为正数和0),但在无符号数中,最左一位与其右各位一样用于表示数值。

大多数架构的机器语言不区分有符号数及无符号数。然而算术指令通常设定进位标志等CPU标志,为无符号算术及溢出标志设定。这些标志能够被带入随后的分支及算术指令中。

C语言及大部分C的派生语言为其所有有符号数类型及char类型提供了对应的无符号类型。在这些语言中,若存在显式的unsigned标识符,则将此数标识为无符号,否则为有符号(char类型除外),对应地存在signed标识符用于标识有符号数。为数值添加U后缀也可将此数值标识为无符号数。例如,在32位数中,0xFFFFFFFF表示-1,但0xFFFFFFFFU表示4294967295。

编译器在遇到有符号数与无符号数间的比较、算术等操作时常会发出警告,因为可能因其范围不同而导致溢出。C/C++语言规定无符号整数运算不存在溢出,如果结果超出了无符号类型能表示的最大数,则做模运算取余数。例如,对于uint32的 2-3, 其结果对0x10000模运算取余数,最终结果为0xFFFF。

相关

  • 小便尿,又称尿液,是人类和脊椎动物为了新陈代谢的需要,经由泌尿系统及尿路排出体外的液体排泄物。排出的尿液可调节机体内水和电解质的平衡以及清除代谢废物且可同时散热,尤其是退化
  • 绝对温度热力学温标,又称开尔文温标、绝对温标,简称开氏温标,凯氏温标,是一种标定、量化温度的方法。它对应的物理量是热力学温度,或称开氏度,符号为K,为国际单位制中的基本物理量之一;对应
  • 五刑五刑是中国古代五种刑罚之统称,在不同时期,五种刑罚的具体所指并不相同。在西汉文帝前,五刑指墨、劓、刖、宫、大辟;隋唐之后,五刑则指笞、杖、徒、流、死。五刑是对中国古代刑罚
  • 表白表白,或称告白(confession),意为向他人表示自己的想法或心意。特指向心仪的对象表达爱意,又称示爱,在这种情况下通常被认为是建立恋爱关系的方式。表白可以通过各种方式,如当面表
  • 淋病奈瑟菌淋球菌(学名:Neisseria gonorrhoeae,奈瑟氏球菌)又称淋病双球菌(“淋”,拼音:lìn)、淋病奈瑟菌,是导致淋病的病原菌,和脑膜炎奈瑟菌同属于奈瑟菌属,是革兰氏阴性菌一个属种。球菌是需
  • 埃隆期埃隆期(Aeronian)是志留纪的第二个阶段,年代大约位于440.8–438.5百万年前。
  • 暹罗猫暹罗猫(Siamese cat)是很早被承认的东方短毛猫品种之一。这个品种的由来尚未确定,相信是来自东南亚。据称是源自暹罗(今泰国)寺庙里饲养的猫。在泰国里被称Wichien-maat(วิเช
  • 马卡里奥斯马卡里奥斯三世总主教(Μακάριος Γ,1913年8月13日-1977年8月3日),东正教塞浦路斯正教会总主教,塞浦路斯共和国首任总统。马卡里奥斯原名米哈伊尔·克里斯托都娄·牟斯寇斯
  • 乌头属乌头属又名附子属(学名:)是一种属于毛茛科的开花植物的属,这个属有250多个种。又名.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.z
  • 岭东日报《岭东日报》于1902年5月5日在汕头创刊。1872年广州出版的《羊城采新实录》是内地出版的第一家近代化报纸,而《岭东日报》则是汕头第一家地方报纸,是20世纪初广东东部地区最早