无符号数

✍ dations ◷ 2025-11-28 22:04:53 #计算机编程,计算机算术,程式设计小作品,数据类型

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

相关

  • 淋巴淋巴系统(lymphatic system)是循环系统的一部分,是由淋巴、淋巴管与淋巴结所组成。不单是回收剩余的体液,调控体内环境的平衡,也是身体内的免疫反应之处,逐步过滤保证个体的健康
  • 外科手术人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学外科手术,简称手术,凡指透过器械,经外科
  • 兰金温标兰氏度(兰金,Rankine)是一个热力学温度单位。可以理解为是以绝对零度为计算起点的华氏温度。由英国工程师及物理学家威廉·约翰·麦夸恩·兰金在1859年提出,因而得名。现在已经
  • 钟万勰钟万勰(1934年2月24日-)计算力学专家,中国科学院院士,大连理工大学教授。著名电机工程学家钟兆琳之子。祖籍浙江德清,1934年出生于上海,早年就读于上海市南洋模范中学。1952年考入
  • 吸气吸入是指动物进行呼吸时,空气或其他物质经由气管进入肺泡的运动。主要是由横膈膜的收缩与舒张来控制。当吸入空气时,横隔膜会呈平形,肺里的空气体积会增加,气压则会减少。
  • 西罗曼语支西罗曼语(英语:Western Romance languages)是罗曼语族下属的分类之一,和意大利-达尔马提亚语共同形成了意大利-西罗曼语支。西罗曼语言虽然和意大利-达尔马提亚语,但由于经过了拉
  • 外贸依存度贸易依存度(foreign trade degree of dependence, FTD)是指一定时期内一国或一地区的进出口贸易值与该国或该地区同时期内的国内生产总值(GDP)的比值,即E X
  • 曼恰尔曼恰尔(Manchar),是印度马哈拉施特拉邦浦那县的一个城镇。总人口13793(2001年)。该地2001年总人口13793人,其中男性7114人,女性6679人;0—6岁人口1805人,其中男938人,女867人;识字率71.
  • 阿尔图拉斯·米拉克尼斯阿尔图拉斯·米拉克尼斯(立陶宛语:Artūras Milaknis,1986年6月16日-),立陶宛篮球运动员,在场上的位置是得分后卫或小前锋,现在效力于立陶宛球队萨拉基利斯篮球俱乐部。他也代表立陶
  • Cadence益华电脑股份有限公司(Cadence Design Systems, Inc)成立于1988年,是电子设计自动化(EDA)软件与工程服务的重要厂商,主要提供集成电路设计(IC Design)、系统单片机(SoC)、以及印刷电路