c中1000000000000000,一后面十五个零,为何表示的是负32768,而不是负0
答案:4 悬赏:20
解决时间 2021-03-12 22:18
- 提问者网友:纹身骑士
- 2021-03-12 01:33
c中1000000000000000,一后面十五个零,为何表示的是负32768,而不是负0
最佳答案
- 二级知识专家网友:瘾与深巷
- 2021-03-12 01:42
这个很简单,16位表示的范围是-32768~32767,因为c中没有正零和负零之分,而1000000000000000和000000000000000都是表示0,所以默认让1000000000000000表示-32768
全部回答
- 1楼网友:猖狂的痴情人
- 2021-03-12 04:25
补码
负0是?
- 2楼网友:何以畏孤独
- 2021-03-12 03:45
你可以这样理解,当符号位是1时,补码的转换要反转各位再加1(不算符号位),所以-32768就是15个0反转成15个1,再加1,这时正好变成10000(15个0),也就是负的(这个负的是因为原来的符号位是1确定的)2^15。
- 3楼网友:花一样艳美的陌生人
- 2021-03-12 03:16
你这个二进制串是补码,在计算机中的数是用补码进行表示的
补码与原码的转换是正数的补码与原码相同
负数的补码等于原码按位取反再加1
这个1000000000000000就的原码就是
先取反0补码就是这样的
另外,c/c++不存在负0这个概念
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯