无符号和有符号的区别

2016.10.24

无符号和有符号,

在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需要声明无符号类型的话就需要在类型前加上unsigned。无符号整型和有符号整型的区别就是无符号类型可以存放的正数范围比有符号整型中的范围大一倍,因为有符号类型将最高位存储符号,而无符号类型全都存储数字。比如16位系统中一个int能存储的数据的范围是-32768~32767,而无符号能存储的数据则是0~65535。在一些不可能取值为负数的时候,可以定义为unsigned,在一些底层的嵌入式编程的数据一般都是无符号的。

无符号整型和有符号整型运算依据表示数据的最大值来定(也是计算机中混合数据类型运算的特点,两个不同类型数据运算,会取能表示较大数据的类型作为运算类型),二者数据运算先将有符号整型转换成无符号整型再通过无符号数运算规则来计算。数据如果超出了整形数据表示范围,则用比当前数据类型大的最小数据类型来表示

你可能感兴趣的:(无符号和有符号的区别)