課程
/后端開發
/C
/C語言入門
左移運算,右移運算,按位異或!我的思路是把八進制a 十進制a1轉成二進制算得出正確答案按位或運算結果!然后左移和右移我移的是a二進制的位!再把移位后的二進制轉八或者轉十都得不出正確答案!是我哪里錯了?
2017-02-27
源自:C語言入門 4-16
正在回答
你的太模糊了,給你一個意思差不多的示例吧。
現在有一個一維整型數組arry[16],里面每一個元素存放的是0或者1,然后一共16位,怎么把這個數組轉換成一個16進制的整型數
#include<stdio.h>char hex[17] = "0123456789ABCDEF";int main(){ int a[16] = {0}, sum = 1, total = 0, i; for(i = 0; i < 16; ++i){ scanf("%d", &a[i]); } for(i = 0;i < 16; ++i){ if(a[i]){ sum <<= (4-((i+1)%4 ? (i+1)%4 : 4)); total += sum; sum = 1; } if((i+1)%4 == 0){ printf("%c", hex[total]); sum = 1; total = 0; } } return 0;}
太模糊了
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
1 回答求大神解析!
1 回答新手求大神,真不懂。。。
1 回答求大神解答,概念解析
1 回答新手上路,求大神指點
1 回答我是萌新求大神,解答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-04-16
你的太模糊了,給你一個意思差不多的示例吧。
現在有一個一維整型數組arry[16],里面每一個元素存放的是0或者1,然后一共16位,怎么把這個數組轉換成一個16進制的整型數
#include<stdio.h>
char hex[17] = "0123456789ABCDEF";
int main(){
int a[16] = {0}, sum = 1, total = 0, i;
for(i = 0; i < 16; ++i){
scanf("%d", &a[i]);
}
for(i = 0;i < 16; ++i){
if(a[i]){
sum <<= (4-((i+1)%4 ? (i+1)%4 : 4));
total += sum;
sum = 1;
}
if((i+1)%4 == 0){
printf("%c", hex[total]);
sum = 1;
total = 0;
}
}
return 0;
}
2017-02-28
太模糊了