无符号数

✍ dations ◷ 2025-06-08 12:14:36 #计算机编程,计算机算术,程式设计小作品,数据类型

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

相关

  • 溶血性尿毒综合症溶血性尿毒综合征(英语:Hemolytic-uremic syndrome, HUS)是一种由于溶血性贫血(Hemolytic anemia)而引发的急性肾损伤(Acute kidney injury)和血小板数量下降综合征。病因不明,发病
  • 掘足纲原口动物 Protostomia掘足纲是软体动物门的一个纲。全部是海产泥沙中穴居的一类小型软体动物,仅有350种左右。海生,直至7000米可见其踪迹。贝壳长,似象牙,管状,成细弯刀型,两端开
  • 天道教天道教是朝鲜半岛的一个新兴宗教。天道教的前身是由崔济愚创立的东学。朝鲜王朝末期,1860年代的朝鲜王朝处于西方势力的威胁之下,崔济愚担心朝鲜传统的宗教将被天主教代替,综合
  • 异狄氏剂(1aR,2S,2aS,3S,6R,6aR,7R,7aS)-3,4,5,6,9,9-hexachloro-1a,2,2a,3,6,6a,7,7a-octahydro-2,7:3,6-dimethanonaphthooxirene异狄氏剂(英语:Endrin)也称为安特灵,是一种有机氯化合
  • 爵士歌手《爵士乐歌星》(英语:The Jazz Singer),又称《爵士歌王》,是一部1927年拍摄上映的美国歌舞电影。它是第一部全片使用声画同步的电影,它标志着商业性有声电影的出现和无声电影的结
  • 爱国启蒙运动爱国启蒙运动(朝鲜语:애국계몽운동/愛國啓蒙運動 Aeguk Gyemong Undong ?),又称爱国文化启蒙运动,是朝鲜大韩帝国末期的社会运动,以“自强”和“独立”为口号,旨在通过振兴产业和
  • 光复节光复节(韩语:광복절)是朝鲜民主主义人民共和国(以下简称“朝鲜”)和大韩民国(以下简称“韩国”)的公立假日,在每年8月15日庆祝。这一天是为了纪念1945年8月15日第二次世界大战对日战
  • 艾奎诺阿基诺可以指:
  • 阿波罗10号阿波罗10号(Apollo 10)是阿波罗计划中第四次载人飞行任务,第一次(也是唯一的载人土星5号)在39B发射台发射。本次任务是第二次环绕月球的载人任务,首次将登月舱带入月球轨道进行测
  • 亚瑟·皮安塔多西亚瑟·皮安塔多西(英语:Arthur Piantadosi,1916年11月4日-1994年2月23日)为一位美国音讯工程师。他曾赢得了1次奥斯卡最佳音响效果奖,并在这个奖项上获得了6次提名。他于1973年,因