永发信息网

刚接触C语言 有这样一句话 说是:0xfff1和-0x800f等价 都等于10进制的-15什么意思?

答案:6  悬赏:40  手机版
解决时间 2021-04-04 02:11
  • 提问者网友:感性作祟
  • 2021-04-03 09:03
刚接触C语言 有这样一句话 说是:0xfff1和-0x800f等价 都等于10进制的-15什么意思?
最佳答案
  • 五星知识达人网友:执傲
  • 2021-04-03 09:08
整形数据在内存里以二进制存放,负数便以补码的方式存放。
取负数的补码方法:先取绝对值,取反,再加1。
以-15举例(两字节):
-15原码: 1000000000001111 0x800f
15的原码: 0000000000001111 0x000f
取反: 1111111111110000 0xfff0
加1得-15的补码:1111111111110001 0xfff1
有符号整形数据二进制里首字符为1的为负数。0x代表16进制,不一定代表补码。
有符号整形数据十六进制0x8的是补码。
全部回答
  • 1楼网友:往事埋风中
  • 2021-04-03 13:41
你应该多看书,真的,这个都好基础的
  • 2楼网友:山河有幸埋战骨
  • 2021-04-03 12:28
我也是,编程寻找2^32+1的约数:
#include "stdio.h"
void main()
{
unsigned long i=0x100000001;
unsigned int j=2;
printf("%u",i);
for(;j<=0x100001;j++)
if ((i%j)==0) {printf("%u",j); break;}
}
结果为:1
  • 3楼网友:琴狂剑也妄
  • 2021-04-03 12:12
没对
0x800f 是signed -32753
unsigned 32783
  • 4楼网友:从此江山别
  • 2021-04-03 10:53
输入0x表示十六进制,但不是补码追问那这两个数是等价的 怎么回事?都等于-15 我也看过别人给的解释但是看不太明白 能给我详细的解释吗?
  • 5楼网友:十年萤火照君眠
  • 2021-04-03 09:55
好少的分呐
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯