数値中のすべてのビットを左端までシフトする
問題:数値中のすべてのビットを左端までシフトする。例01010110は11110000。
#include <stdio.h> int main(){ int i; char c[100], result[100], one[100]="1"; strcpy(result, ""); fgets(c, sizeof(c), stdin); for(i=0; i<strlen(c); i++){ if(c[i]=='0') strcat(result, "0"); else if(c[i]=='1'){ strcat(one, result); strcpy(result, one); strcpy(one, "1"); } } printf("result = %s", result); return 0; }
うーん。ビット演算の章の問題なんだけどこの解き方はなぁ。