Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #define size 10//how many bits to present the integer
  5. void getBits(int, int[], int);
  6.  
  7. int main(void) {
  8.     int bits [size]= { 0 };//initial all bits to 0;
  9.     getBits(10, bits, 2);//10進位10的2進位表示法
  10.     int bits2 [size]= { 0 };//initial all bits to 0;
  11.     getBits(4, bits2, 2);//10進位4的2進位表示法
  12.     int total [size]= { 0 };//initial all bits to 0;
  13.    
  14.     int c=0;
  15.     for(int j=0;j<size-1;j++){
  16.         int d= ceil((bits[j]+bits2[j]+c)/2);
  17.         total[j]=(bits[j]+bits2[j]+c)-2*d;
  18.         c=d;
  19.     }
  20.     total[size]=c;
  21.     for (int i=size-1; i>=0; i--) {
  22.         printf("%d", total[i]);
  23.     }
  24.     return 0;
  25. }
  26.  
  27. void getBits(int integer, int bits[], int b) {
  28.     int q=integer;
  29.     int k=0;
  30.     while (q!=0) {
  31.         bits[k]=q%b;//get the mod;
  32.         q=ceil(q/b);//Returns the smallest integer value greater than or equal to x.
  33.         k+=1;
  34.     }
  35. }