C语言中的类型修饰符的区别?!

来源:百度知道 编辑:UC知道 时间:2024/06/14 19:32:42
"有符号型signed和无符号型unsigned适用于char型,int型,long型三种类型,区别在于它们的最高位是否作为符号位."

这句话的意思是什么?!
最高位是什么?!
符号位是什么?!

谢了~~!!!

就拿int型为例,这里假设int为两个字节(这个视不同的编译器而不同),因为是两个字节所以共16为,如果是unsigned型的话就是16为全用,所以unsigned int型的取值范围为0—65536(2^16 - 1),而如果是signed型的话第一位要被用来做符号为表明数的正负,,因此只能用后面的15为来表明数的大小,所以取值范围就是-32767-32767(2^15 - 1)

最高位就是最左边的数字~
符号位就是专门表是正负号的位
比如无符号型的最高位就不是符号位,而是正常的数字,而有符号型的最高位则是符号位,即最左边的数字表示正负

看课本吧。。。从课本里找到答案会记得更深刻。。。。。