以陣列儲存十個位元組資料,以十六進制加法累加此十個位元組,最後將此和(SUM)分成高半位元組跟低半位元組,放在第十一位元組跟第十二位元組。例如:
02+28+02+31+30+46+36+30+34+03 = 17407H 04H
記憶體位置 02 28 02 31 30 46 36 30 34 03 07 04
我的解法如下
#include
#include
main()
{
int a[]={02,28,02,31,30,46,36,30,34,03};
int i,sum;
for(i=0;i<=9;i++)
{ sum+=a[i];
printf("%4d",a[i]);
}
printf("%4d",sum);
system("pause");
}
問題卡在 如何將10進制轉16進制,
以及如何將答案分成高半位元組
跟低半位元組放在陣列 11及12的位置
請求大大解答QQ
2007-11-26 16:16:09 · 1 個解答 · 發問者 飛電 3 in 電腦與網際網路 ➔ 程式設計
#include
#include
#include
int main(int argc, char* argv[]){
//=====START=====//
int a[]={0x02,0x28,0x02,0x31,0x30,0x46,0x36,0x30,0x34,0x03,0,0};
int i,total=0;
char buffer[32767];
for(i=0;i<(int)(sizeof(a)/sizeof(a[0]));i++){
total+=a[i];
}
itoa(total,buffer,16);
a[10]=buffer[1]-'0';
a[11]=buffer[2]-'0';
printf("High= 0x%02x\nLow= 0x%02x\n",a[10],a[11]);
//=====END=====//
system("PAUSE");
return 0;
}
2007-11-26 17:44:13 · answer #1 · answered by Big_John-tw 7 · 0⤊ 0⤋