
上QQ阅读APP看书,第一时间看更新
3.4.1 如何在C语言代码中表示正整数与负整数
在需要使用负整数(也就是小于0的整数)时,我们可以给int前面加上signed关键字,这种带符号的整数称作signed int。如果我们要表示某个可能大于0也可能小于0的数,那么自然会用到这种整数。如果你没有指明某个int是signed int还是unsigned int,那它默认就是signed int。
带符号的整数会用其中一个二进制位来表示它是正数还是负数。一般来说,用来表示符号的这个二进制位是最高有效位(most significant bit)(也就是最左侧的那一位),与之相对还有一个二进制位叫作最低有效位(least significant bit)(也就是最右侧的那一位),在其他二进制位都为0且该位为1的情况下,该整数的值就是1。带符号的整数所能取到的值跟不带符号的整数一样多,但取值范围要比不带符号的整数低,在数轴上看,就是偏左。比方说,在只用一个字节来表示整数的前提下,带符号的整数虽然也能取256个值,但这256个值所涵盖的范围是-128~127(而不是0~255)。注意,0本身也在带符号的整数所能表示的值里面,由于有这个值,因此带符号的整数所能表示的负数个数跟正数个数不同(这又属于刚才提到的多算一个或少算一个的问题)。