无符号数

✍ dations ◷ 2025-04-26 14:44:21 #计算机编程,计算机算术,程式设计小作品,数据类型

无符号数(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。

相关

  • 近音近音(英语:approximants; approximant consonant,前称无擦通音)在语音学中是指一类介乎元音和辅音的声音。发近音时,两个发音部位彼此靠拢,组成声腔并且收窄,但仍然有足够空间予气
  • 吨又称公顿,是公制的质量单位,符号为t。其虽非国际单位制(SI)基本单位之一,但符合十进制,在使用上是可以与国际单位制相合。1 吨 = 1000 公斤 (kg)= 2204.62 英磅(LB) Metric Ton吨也
  • 商业区商业区在中文中指的是一个商业设施(特别是银行、超级市场、金融中心、商场等企业)聚集的地区,属于城市的一部分。商业区的相对是住宅区、工业区,但通常会建设在住宅区附近或城市
  • 塘沽协定1931年九一八事变之后,日军取得区域优势,1932年5月淞沪停战协定签约后,国民政府北方军事压力减弱,遂重新开始筹备对红军的围剿。在攘外安内的政策下,1933年2月蒋介石集结50万兵力
  • 约瑟夫·格哈德·楚卡里尼约瑟夫·格哈德·楚卡里尼(德语:Joseph Gerhard Zuccarini,1797年8月10日-1848年2月16日),德国植物学家,慕尼黑大学植物学教授。他曾经帮助西博尔德整理和研究其从日本搜集的植物标
  • 克莱因瓶在数学领域中,克莱因瓶(德语:Kleinsche Flasche)是指一种无定向性的平面,比如二维平面,就没有“内部”和“外部”之分。克莱因瓶最初的概念提出是由德国数学家费利克斯·克莱因提
  • 拉特利奇约翰·拉特利奇(英语:John Rutledge,1739年9月17日-1800年7月23日),美国政治家、律师、奴隶主,南卡罗来那州人。他生于查尔斯顿,父亲是爱尔兰移民和医生,其弟爱德华·拉特利奇是美国
  • 戴德姆 (马萨诸塞州)戴德姆(Dedham)位于美国马萨诸塞州东部,是诺福克县的县治所在,面积27.6平方公里。根据2000年美国人口普查,共有23,464人,其中白人占94.51%、亚裔美国人占1.87%、非裔美国人占1.54%
  • 褐头牛鹂褐头牛鹂(学名:,英语:brown-headed cowbird)是牛鹂属下的一种小型鸟类,分布于北美洲的温带和亚热带地区。南方的褐头牛鹂一般并不迁徙,而北方的褐头牛鹂则会飞到南方过冬,三月至四月
  • 阶级冲突阶级冲突(Class conflict),指的是:对立阶级之间的斗争。它反映了由于社会地位的不同而导致的群体之间的根本性的紧张,甚至是对立关系。马克思主义者认为阶级冲突在阶级社会的历史