求高手帮我写一段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里运行的,谢谢 展开
是在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;
}
int main(void)
{
int a = 0x8277;
unsigned int data,b;
b=a;
data=0xffff-b+1;
printf("%d\n", data);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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);
}
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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int data;
union
{
unsigned char c[2];
int i;
}x;
x.c[0] = a;
x.c[1] = b;
data = 0 - x.i;
union
{
unsigned char c[2];
int i;
}x;
x.c[0] = a;
x.c[1] = b;
data = 0 - x.i;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询