C语言学习笔记
之(un)signed及溢出总结篇(下)
在学习了C语言进阶【暑期特别篇】深入剖析(un)signed及溢出(上)和 C语言进阶【暑期特别篇】深入剖析(un)signed及溢出(中)两篇文章后,大家是不是对有无符号有了一定的了解,但是依然会产生各种疑问,比如:定义的有符号类型的常量,发生溢出的时候以无符号类型输出会是怎样? 同样的,定义的是无符号类型的,但是以有符号类型输出又能输出个什么东西呢?
如果你还是拿不准的话,看来还得跟随在下继续看这篇文章了!呵呵
在这篇文章中,首先我们会总结一下,然后具体看几个综合实例,相信大家看完之后应该对有无符号的问题再也没有疑问了。
一:总结(以int类型作为总结)
1.int类型的范围总结十进制范围二进制范围
32位unsigned int0~42949672950~ 1-1
signed int-2147483648~21474836471000 0000 0000 0000 0..0~
0111 1111 1111 1111 1..1
16位short unsigned int0~655350 ~ 1111 1111 1111 1111
short signed int-32768~327671..1 1000 0000 0000 ~
0..0 0111 1111 1111 1111
0-0表示32个0. 1-1表示32个1. 0..0表示16个0. 1..1表示16个1.
2.概念理解总结
(1)指定类型,是指定了有效位数,并不是实际位数。计算机分配给我们的是32位即8个字节,我们指定变量a为short i