为什么C语言中的整型取值范围是--32768~32767,是按什么规则规定,推理的?
整型的宽度是一个字,也就是2个字节,16个二进制位,最高一位二进制位用来表示符号(正或负),那么剩下的15位来表示数值。
01111111 11111111是32767,最大的正整数
00000000 00000001是1
00000000 00000000是0
11111111 11111111是-1(不是-32767)
10000000 00000001是-32767(不是-1)
10000000 00000000是-32768(不是-0),最小的负整数
计算机表示数主要从运算方式的一致性来考虑。
比如00000000 00000001表示1很好理解,但是11111111 11111111为什么是-1呢?
按照二进制加法
11111111 11111111 00000000 00000001= 1 00000000 00000000
结果超出了整型的宽度,溢出部分被忽略,最后的计算机结果是00000000 00000000
那么换成十进制,? 1=0,所以11111111 11111111表示成十进制就是-1。
问:取值范围已知三角形ABC中,∠C=90°,则(a+b)/c的取值范围是
答:∵ a^+b^=c^, (a+b)^/c^=(a^+b^+2ab)/(a^+b^)=1+[2ab/(a^+b^)]≤1+(2ab)/(2ab)=2, 又a+b>...详情>>
答:清华大学出版的c语言教程详情>>
答:网上买2手的也就几块钱而已详情>>