求高手帮我写一段c语言段代码 ,是关于字节整数转换的,急用,在线等,谢谢,具体题目在问题补充

unsignedchara=0x77,b=0x82;intdata;按规定,负数是用补码(反码加1)表示的,现在有两字节整数,假设是负数,a为该整数的低字节=0x77,b... unsigned char a=0x77,b=0x82; int data; 按规定,负数是用补码(反码加1)表示的,现在有两字节整数,假设是负数,a为该整数的低字节=0x77,b为该整数的高字节=0x82,请编写一段代码把它转换为绝对值相等的正整数data。
是在TC里运行的,谢谢
展开
 我来答
匿名用户
2011-12-15
展开全部
#include <stdio.h>

int main(void)
{
int a = 0x8277;
unsigned int data,b;
b=a;
data=0xffff-b+1;
printf("%d\n", data);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chenqa08
2011-12-15 · TA获得超过275个赞
知道答主
回答量:105
采纳率:0%
帮助的人:111万
展开全部
#include <stdio.h>

int Byte2Int(unsigned char hi, unsigned char low);

int main(void)
{
unsigned char a = 0x77; //0x8277 = 33399
unsigned char b = 0x82;
int data = 0;

data = Byte2Int(b, a);

printf("%d\n", data);

return(0);
}

int Byte2Int(unsigned char hi, unsigned char low)
{
return((int)((hi << 8) + low) & 0xffff);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bddachong1
2011-12-24
知道答主
回答量:11
采纳率:0%
帮助的人:14.3万
展开全部
int data;

union
{
unsigned char c[2];
int i;
}x;

x.c[0] = a;
x.c[1] = b;
data = 0 - x.i;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式