C语言的问题

设整型变量a的值为-1,在16位微机中用16进制打印a的值是(FFFF)这道题是怎么算的请高手解答一下谢谢!... 设整型变量a的值为-1,在16位微机中用16进制打印a的值是( FFFF )
这道题是怎么算的请高手解答一下谢谢!
展开
 我来答
小黑哎啊
科技发烧友

2020-11-11 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1642
采纳率:74%
帮助的人:363万
展开全部

#include<stdio.h>

#include<string.h>

#define N 100 

int main()

{

   int a[4]={1,2,3,4};// 该数组的内存地址是系统随机分配的 

for(int i=0;i<4;i++)

{

printf("%d %d",a[i],&a[i]);//变量前加取地址符(&),就能输出该变量的内存地址  

printf("\n");//每个地址相隔4个字节(因为int类型的变量为4个字节),且是连续的; 

    return 0;

 }

khv830107
2011-02-24 · TA获得超过1339个赞
知道小有建树答主
回答量:619
采纳率:0%
帮助的人:418万
展开全部
朋友16进制的数没有负数,用手表做例子,最大到12对吗?那么12点以后呢还是1点,又绕回去了,逢12进1,那么你的问题就是逢16进1啊,0000就是0啊,那么0-1就是F,F+1=0,所以-1就是等于FFFF,这个是举例子和大白话解释方便你能看懂。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ziyang64
推荐于2017-12-16 · TA获得超过962个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:816万
展开全部
编码格式确定的,负数是使用补码形式表示的。把正数转负数是按位取反再加1。
如1取反后是二进制的:1111 1111 1111 1110,
再加1就是: 1111 1111 1111 1111,即16进制的FFFF。
这种编码的好处就是: 1 + (-1) = 0;符合一般的计算结果。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7b6bbd4
2011-02-24
知道答主
回答量:14
采纳率:0%
帮助的人:16.5万
展开全部
很简单呃

#include<stdio.h>
int main()
{
int a=-1;
printf("%x\n",a);
return 0;
}

现在的微机几乎都是32位的了、、你想找16位的老爷机来运行????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式