无符号数

✍ dations ◷ 2024-09-20 12:31:27 #计算机编程,计算机算术,程式设计小作品,数据类型

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

相关

  • 医用大麻医用大麻(法语:Cannabis médical; 英语:medical cannabis或medical marijuana)是可用于医疗处方的大麻或大麻素。相比娱乐用大麻的高强度THC,医用大麻拥有相对较高的大麻二酚(CBD)
  • 本芴醇苯芴醇(Lumefantrine或benflumetol)是一种抗疟药,只会和蒿甲醚合并使用,称为复方蒿甲醚-苯芴醇(英语:Artemether/lumefantrine),有时也会用英文co-artemether表示。在1981年的青蒿素
  • 加利福尼亚大学圣地牙哥分校圣迭戈加利福尼亚大学 (英语:University of California, San Diego;常用缩写“UCSD”或“UC San Diego”),简称“圣迭戈加州大学”,民间多译作“加利福尼亚大学圣迭戈分校”,是美国
  • 桃园市立大溪木艺生态博物馆桃园市立大溪木艺生态博物馆,简称大溪木艺生态博物馆,是一座坐落于中华民国桃园市大溪区的博物馆。大溪木艺生态博物馆是台湾首座无围墙博物馆及桃园市首座市立博物馆,成立于20
  • 列宁格勒围城战北部方面军:1,017,881人阵亡、负伤或失踪2,418,185人负伤或生病 总计:3,436,066人伤亡波罗的海 – 黑海 – 北极 – (跳马 – PQ-17船团 – 仙境)1941年巴巴罗萨 – (比亚韦斯
  • 第4周期元素第4周期元素是元素周期表中第四行(即周期)的元素。含有:第1周期元素 -第2周期元素 -第3周期元素 -第4周期元素 -第5周期元素 -第6周期元素 -第7周期元素 -第8周期元素
  • 网页托管服务网页托管服务(英语:Web hosting service)利用数据中心的电脑群和贮存设备为用户提供免费或收费服务。托管公司通常会提供一个界面,让用户远程上传网页内容,然后其他人就可以透过
  • 阿拉木斯阿拉木斯(1989年6月2日-),内蒙古人,中国男子柔道运动员。2010年6月,阿拉木斯在男子柔道世界杯葡萄牙站暨伦敦奥运积分赛,于60公斤级A组出战,一路晋级决赛。他在冠军战对阵英国选手英
  • 一氯五氟乙烷一氯五氟乙烷(化学式:C2ClF5),别名R-115、氟利昂-115,是一种氯氟烃制冷剂。由于它会对臭氧层造成危害,根据蒙特利尔议定书,它于1996年1月1日起被禁止使用。
  • 纪尔他布纪尔他布(满语:ᡤᡳᠯᡨᠠᠪᡠ,穆麟德:,?-1697年),又名纪尔塔布、吉勒塔布,礼佳氏,满洲正红旗人,清朝政治人物、清朝兵部尚书。曾任正红旗满洲都统。康熙二十七年五月丁亥,接替阿兰泰,担任