无符号数

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

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

相关

  • 多粘菌素多粘菌素engpolymyxin是一类多肽类抗生素,由多粘芽孢杆菌产生。由于静脉给药可致严重肾毒性(英语:Nephrotoxicity)现已少用。但现在对其肾毒性有新的认识。主要包括:多粘菌素B(po
  • DNA修复DNA修复是细胞中经常运行的一种进程。它使基因组免受损伤和突变,因此对细胞的生存是很重要的。在人的细胞中,一般的代谢活动和环境因素(如紫外线和放射线)都能造成DNA损伤,导致每
  • 永昼峰永昼峰是指太阳系的天体上能够永远受到阳光照射的点。这取决于天体的旋转以及该点的海拔。因为可以在一天的任何时间接受到太阳能,同时可以保持相对稳定的温度,永昼峰对于外星
  • 陶艺陶艺即陶瓷艺术,属于人类的传统工艺,涉及制造、上色及修补工艺技巧,可追溯至石器时代。最早的陶器仅用于民生器皿,但随着技术和制造工具发达,制陶逐渐变成了一种艺术。现代陶艺有
  • 太白山坐标:38°13′29″N 128°11′7″E / 38.22472°N 128.18528°E / 38.22472; 128.18528太白山脉(谚:태백산맥)为韩国和朝鲜两国之主要山脉,纵贯朝鲜半岛东部,为半岛之主体骨干,东侧
  • 欢迎来到实力至上主义的教室角色列表本列表为日本轻小说作品《欢迎来到实力至上主义的教室》中的角色介绍。
  • 华费遂华费遂(?-?),子姓,华氏,名费遂,宋国司马。前538年七月,楚灵王耀兵带领诸侯进攻吴国,宋国太子佐(宋元公)、郑简公先行回国。宋国的华费遂、郑国大夫随军。八月,楚将屈申攻下了朱方,逮住了齐
  • 黄灯笼辣椒黄灯笼辣椒(学名:),又名中华辣椒、黄帝椒、黄辣椒,是茄科茄亚族辣椒属的植物。国际上将中华辣椒确定为辣椒的五大栽培种之一,原产于古巴、巴西、秘鲁、玻利维亚、巴拉圭等中南美洲
  • 康拉德·马尔特·布戎康拉德·马尔特·布戎(Conrad Malte-Brun,1775年8月12日-1826年12月14日)是一位法国丹麦裔地理学家。原名马尔特·康拉德·布戎(Malthe Conrad Bruun)。在哥本哈根大学读书时因支
  • 墨渍镇谜团《墨渍镇谜团》(英语:)是雷蒙·斯尼奇(作家丹尼尔·韩德勒的笔名)所作的系列小说,共有四部,分别为《这时候会是谁?》、《失踪女孩在哪里?(英语:When Did You See Her Last?)》、《邪恶吊