无符号数 无符号数unsigned是计算机编程中的一种数值資料型別有符号数signed可以表示特定类型规定范围内的整数包括负数而无符号数只能表示非负数及正数 有符号数能够表示负数的代价是能够表示的正数范围的缩小因为其约一半的数值范围要用来表示负数如位有符号整数中对应位无符号整数表示的部分被用于表示无符号数可以利用其所占有的所有位来表示较大的数 例如位有符号整数可表示  之间的任意整数而位无符号整数可表示  之间的数若将有符号数转换为二进制则其数值类型允许的最左一位用于表示符号为负数为正数和但在无符号数中最左一位与其右各位一样用于表示数值 大多数架构的机器语言不区分有符号数及无符号数然而算术指令通常设定进位标志等CPU标志为无符号算术及溢出标志设定这些标志能够被带入随后的分支及算术指令中 C语言及大部分C的派生语言为其所有有符号数类型及char类型提供了对应的无符号类型在这些语言中若存在显式的unsigned标识符则将此数标识为无符号否则为有符号char类型除外对应地存在signed标识符用于标识有符号数为数值添加U后缀也可将此数值标识为无符号数例如在位数中xFFFFFFFF表示但xFFFFFFFFU表示 编译器在遇到有符号数与无符号数间的比较算术等操作时常会发出警告因为可能因其范围不同而导致溢出CC语言规定无符号整数运算不存在溢出如果结果超出了无符号类型能表示的最大数则做模运算取余数例如对于uint的  其结果对x模运算取余数最终结果为xFFFF