无符号数

✍ dations ◷ 2025-05-19 06:13:48 #计算机编程,计算机算术,程式设计小作品,数据类型

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

相关

  • 溶液在化学中,溶液(英语:Solution),又称为单一相均匀混和物(英语:Homogeneous Mixture),是由两种或以上纯物质所混合成的均相、稳定的分散体系;可能是固态、液态或是气态甚至是其组合;可能
  • 悬浮粒子悬浮颗粒或称颗粒物(particulate matter (PM))、大气颗粒物(atmospheric particulate matter)、颗粒(particulates),泛指悬浮在空气中的固体颗粒或液滴,颗粒微小甚至肉眼难以辨识但
  • 亨利·诺利斯·罗素亨利·诺利斯·罗素(英语:Henry Norris Russell,1877年10月25日-1957年2月18日),美国天文学家。1913年他发表了关于恒星的亮度、颜色和光谱之间的统计关系,这个结果与丹麦天文学家
  • 阿尔费罗夫京都奖尖端科技奖 (2001)诺贝尔物理学奖 (2000)若列斯·伊万诺维奇·阿尔费罗夫(俄语:Жоре́с Ива́нович Алфёров,1930年3月15日-2019年3月1日),俄罗斯物理
  • 棒曲霉棒曲霉(学名:Aspergillus clavatus)是属于散囊菌目发菌科曲霉属的一种真菌,可生长在土壤、霉果皮、动物粪等基物上。该种分布于中国、阿根廷、孟加拉国、巴西、埃及、希腊、印度
  • 日本投降书《日本投降书》(英语:Japanese Instrument of Surrender; 日语:降伏文書/こうふくぶんしょ Kōfukubunsho)是大日本帝国于1945年9月2日在美国海军战列舰密苏里号上所签署之投降
  • 羚羊英亩羚羊英亩(英语:Antelope Acres)是位于美国加利福尼亚州洛杉矶县的一个非建制地区。该地的面积和人口皆未知。羚羊英亩的座标为34°45′16″N 118°17′22″W / 34.75444°N 118
  • 尼可拉斯·劳伦斯·伯曼尼可拉斯·劳伦斯·伯曼(Nicolaas Laurens Burman, 1734–1793)是一名荷兰植物学家,为约翰纳斯·伯曼(Johannes Burman)之子。他继承了父亲于Athenaeum Illustre以及霍特斯植物园
  • 盖钧镒盖钧镒(1936年6月5日-),江苏无锡人,中国作物遗传育种学家。南京农业大学教授,曾任南京农业大学校长。1957年南京农学院农学专业毕业,1968年南京农学院作物遗传育种在职研究生毕业。
  • 奇热夫奇热夫(Czyżew)是波兰的一座城市。在1738年至1870年之间取得城市地位。坐标:52°48′N 22°19′E / 52.800°N 22.317°E / 52.800; 22.317