English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste exemplo,você aprenderá a converter números binários e decimais usando funções definidas pelo usuário.
Para entender este exemplo,você deve saber o seguinteProgramação em CTema:
#include <math.h> #include <stdio.h> int convert(long long n); int main() { long long n; printf("digite um número binário: "); scanf("%lld", &n); printf("%lld(binário)= %d(decimalo)", n, convert(n)); return 0; } int convert(long long n) { int dec = 0, i = 0, resto; while (n != 0) { resto = n % 10; n /= 10; dec += rem * pow(2, i); ++i; } return dec; }
Resultados de saída
digite um número binário: 110110111 110110111(binário) = 439(decimal)
#include <math.h> #include <stdio.h> long long convert(int n); int main() { int n; printf("digite um número decimal: "); scanf("%d", &n); printf("%d(decimalo)= %lld(binário)", n, convert(n)); return 0; } long long convert(int n) { long long bin = 0; int resto, i = 1, step = 1; while (n != 0) { resto = n % 2; printf("passo %d: %d/2, resto = %d, quociente = %d\n", step++, n, rem, n / 2); n /= 2; bin += rem * i; i *= 10; } return bin; }
Resultados de saída
Digite um número decimal: 29 Passo 1: 29/2, Resto = 1, 商 = 14 Passo 2: 14/2, Resto = 0, 商 = 7 Passo 3: 7/2, Resto = 1, 商 = 3 Passo 4: 3/2, Resto = 1, 商 = 1 Passo 5: 1/2, Resto = 1, 商 = 0 29(Decimal) = 11101(Binário)