我们之前介绍过,像int、long这种变量都是以补码的形式存储在存储单元中
存储单元中的第1个二进制位代表着符号
这上面涉及到了unsigned这个符号,它的意思就是无符号,对比相对应的类型,
我们会发现无符号的存储的数的绝对值比原来大了一倍(近似)
其实引入无符号的类型,是为了方便我们的存储,充分利用变量的值的范围
因为我们某些存储的内容是没有符号限制的,加入无符号unsigned后就可以存储更大的数值了
加了unsigned的数据就是无符号类型
加了signed的数据就是有符号类型。
除了整型外,还有如下的内容:
这里面加了[]的就是可有可无的,我们只需要记得无符号unsigned必须写就行
只有添加了unsigned的才是无符号类型,其他一律是有符号类型
无符号类型与有符号类型的区别有两点
1.无符号的首位仍是数值,有符号的首位代表正负
2.由1而来,无符号比有符号多一位去存储,也就使得它的存储的值更大,约是对应的有符号的两倍。
下面的是注意事项
1.只有整形数据(包括字符型)可以用signed和unsigned修饰,实型数据不行
2.无符号整形数据的输出用%u,不再是%d。
%u表示的就是用无符号十进制数的格式输出
这个号是因为无符号和有符号的存储方式有差别,
用%d输出的话,第一位就成了符号位
而%u输出时,第一位也是数值。
无符号数据类型可以用来存储更大的数,使用时要注意
本篇内容到此结束