好的,所以我在C中编写了一个简单的程序,将数字从十进制转换为二进制,它工作正常,直到我尝试转换128.一些奇怪的符号出现,它可能与ASCII有关。有人可以解释为什么这会发生128号及以上的数字。这是我的代码和图像;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *argv[]){
int a = 128;
int counter = 0;
char array[512];
char c;
while(a!=0){
c = a%2 + '0'; // Gives me eather 1 or 0 and converts to char
array[counter] = c;
a /= 2;
counter++;
}
for(int i=strlen(array)-1; i>=0; i--){
printf("%c", array[i]); //printing in reverse
}
printf("\n");
return 0;
}