[英]Need help converting from ASCII to binary
我對C很新,所以我對它不太了解。 指針是我還沒有學到的東西......我需要用十進制和二進制顯示單個字符。 在十進制中它很容易,但我不能以任何方式得到它二進制...我得到ASCII數字並將它的模塊與2比較,但它顯示了一個非常尷尬的數字......代碼有什么問題?(它在葡萄牙語這是我的代碼:
#include <stdio.h>
#include <conio.c> //library my professor created to assist his students
#include <string.h>
#define MAXIMO 8
int main( void )
{
char caracter;
int aux, resto[MAXIMO], contador, decimal, numero;
printf( "Digite um UNICO caracter: " );
caracter = getch();
numero = caracter;
decimal = caracter;
aux = 0;
do
{
if (numero % 2 == 0)
{
resto[aux] = 0;
}
else
{
resto[aux] = 1;
}
numero = numero / 2;
aux++;
}
while (numero >= '0');
//system("cls");
printf( "\n\n%d\n\n", aux );
printf( "\nCaracter em Binario: " );
for (contador = aux; contador >= 0; contador--)
{
printf( "%d", resto[contador] );
}
printf( "\nValor decimal do caracter: %d", decimal );
getch();
return 0;
}
我用的東西就像getch(); 並返回0; 最后只是讓我的老師不要殺了我......我不完全知道為什么它會在那里,但必須如此。
您的代碼在while
條件中有一些錯誤:
#include <stdio.h>
#include <string.h>
#define MAXIMO 8
int main( void )
{
char caracter;
int aux, resto[MAXIMO], contador, decimal, numero;
printf( "Digite um UNICO caracter: " );
caracter = getchar(); // I used getchar instead of getch()
numero = caracter;
decimal = caracter;
aux = 0;
do
{
if (numero % 2 == 0)
{
resto[aux] = 0;
}
else
{
resto[aux] = 1;
}
numero = numero / 2;
aux++;
}
while (numero > 0); // > than 0 not >= '0'
//system("cls");
printf( "\n\n%d\n\n", aux );
printf( "\nCaracter em Binario: " );
for (contador = aux-1; contador >= 0; contador--) //aux-1
{
printf( "%d", resto[contador] );
}
printf( "\nValor decimal do caracter: %d", decimal );
getchar();
return 0;
}
>
(更大)和>=
(大於或等於)具有不同的含義
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.