4
I found a code on the web that converts decimals to binaries (32 bits), but I needed one (256 bits) so I changed the code in the way I thought was correct, but after the given size the nonsignificant zeros are added in the correct way...
int main() {
unsigned long long int n = 140735601943344; // Número de entrada
unsigned long long int r; // Resultado do deslocamento
int i; // Contador
// Lê o número
//printf("Digite o numero: ");
//scanf("%llu", &n);
printf("\nNumero convertido para 256 com os 0 nao significativos:\n");
// Utiliza um número de 256 bits como base para a conversão.
for(i = 255; i >= 0; i--) {
// Executa a operação shift right até a
// última posição da direita para cada bit.
r = n >> i;
// Por meio do "e" lógico ele compara se o valor
// na posição mais à direita é 1 ou 0
// e imprime na tela até reproduzir o número binário.
if(r & 1) {
printf("1");
} else {
printf("0");
}
}
printf("\n");
printf("\nNumero convertido: 140735601943344\n");
printf("\n11111111111111110001111100011111010001100110000\n");
system("pause");
return 0;
}
In this image is the correct zeros limit, in the code i = 67...
Here is the execution I needed... However, as you can see, with i > 67 (255, in this case) there is a "1" that makes no sense...
What’s wrong with the code?
Sorry... the code is in the C language.
– Oberdan Santos