算法之十进制转换成二进制

xiaoxiao2021-02-28  123

#define bits(x) sizeof(x)*8 void decToBin(short x) { int temp[bits(x)]; int num = bits(x); if(x < 0) { x = -x; printf("-"); } for(int i = 0; i < num; i++) { temp[i] = 1 && (x >> num-i-1); printf("%d", temp[i]); } printf("\n"); } void decToBin2(short x) { int a[bits(x)+1], flag = 1, count = 0; int num = bits(x); a[num] = '\0'; if(x < 0) { flag = -1; x = -x; } //正序存储 for(int i = 0; i < num && x; i++) { a[i] = x % 2; x /= 2; count++;//记录循环的次数 } if(flag == -1) printf("-"); //逆序输出 for(i = count-1; i >= 0; i--) printf("%d", a[i]); /* //逆序存储 for(int i = num-1; i >= 0 && x; i--) { a[i] = x % 2; x /= 2; count++; } if(flag == -1) printf("-"); //正序输出 for(i++; i < num; i++) printf("%d", a[i]); */ printf("\n"); } void main() { decToBin(-32767); decToBin2(-32767); }
转载请注明原文地址: https://www.6miu.com/read-51576.html

最新回复(0)