0
我创建的代码只是从用户获得一个十进制数并将其转换为二进制。我试图从0到输入的十进制数字的二进制数制成一个二进制计数器。二进制数的位存储在一个数组中,每一位都有自己的位置。我明白,我将不得不作出一个二维数组来做到这一点,但我不知道如何或在哪里实施这个二维C在二维计数器
#include <stdio.h>
#include <math.h>
int main(void){
int binary,loop_number,i;
printf("Enter in your binary number :");
scanf("%d", &binary);
//loop number calculates the number of bits of the binary number
loop_number = log2(binary)+1;
int binary_array[binary][loop_number];
int newarray[binary][loop_number];
for(int n=0;n<binary;n++) {
for(i=0;i<loop_number;i++) {
if(n==1){
binary_array[n][i]=1;
} else if(n%2==0) {
binary_array[n][i]=0;
} else if(n==0) {
binary_array[n][i]=0;
} else {
binary_array[n][i]=1;
}
n = n/2;
}
//the binary array of bits is backwards here so im going to put the bits the correct way
for(int n=0;n<binary;n++) {
for(i = 0; i < loop_number; i++){
newarray[n][i] = binary_array[n][loop_number-i-1];
}
}
}
printf("\n\n");
for(int n=0;n<binary;n++){
for(i=0;i<loop_number;i++){
printf("%d",newarray[n][i]);
}
printf("\n");
}
}
嗯,转换为二进制?为什么你需要一个二维数组?我认为一个小循环会做这样的事情:'for(i = 0,bit = 1; bit
Holger