
Написать две функции: одна из которых осуществляет перевод из десятичной системы исчисления в
двоичную, а вторая - наоборот. На языке С

Ответы на вопрос

#include <iostream>
#include <string>
using namespace std;
string dectobin(int num) // функция для перевода
{
string result; // строка для результата
for (; num!=0; num>>=1) // цикл со сдвигом вправо на 1 бит (работает быстрее чем деление на 2,
//но также делит)
result.insert(0, num&1 ? "1" : "0"); // вставка цифры в начало строки (1 если последний бит 1, 0 если 0)
return result; // возврат результата
}
int main(int argc, char *argv[])
{
// тут думаю понятно, ввод данных и вызов функции
int num;
cout<<"Enter number: ";
cin>>num;
cout<<dectobin(num);
return 0;
}



Для перевода чисел из десятичной системы исчисления в двоичную и обратно, можно использовать следующие функции на языке C:
- Функция для перевода из десятичной системы в двоичную:
c#include <stdio.h>
// Функция для перевода из десятичной в двоичную систему
void decimalToBinary(int decimalNum) {
int binaryNum[32]; // Максимальная длина двоичного числа для int - 32 бита
int i = 0;
while (decimalNum > 0) {
binaryNum[i] = decimalNum % 2;
decimalNum = decimalNum / 2;
i++;
}
printf("Двоичное представление: ");
if (i == 0) {
printf("0"); // Если входное число равно 0
} else {
for (int j = i - 1; j >= 0; j--) {
printf("%d", binaryNum[j]);
}
}
printf("\n");
}
- Функция для перевода из двоичной системы в десятичную:
c#include <stdio.h>
#include <string.h>
#include <math.h>
// Функция для перевода из двоичной в десятичную систему
int binaryToDecimal(const char *binaryNum) {
int decimalNum = 0;
int len = strlen(binaryNum);
for (int i = len - 1; i >= 0; i--) {
if (binaryNum[i] == '1') {
decimalNum += pow(2, len - 1 - i);
}
}
return decimalNum;
}
Пример использования этих функций:
c#include <stdio.h>
int main() {
int decimalNumber = 42;
printf("Исходное десятичное число: %d\n", decimalNumber);
decimalToBinary(decimalNumber);
const char *binaryNumber = "101010";
printf("Исходное двоичное число: %s\n", binaryNumber);
int resultDecimal = binaryToDecimal(binaryNumber);
printf("Десятичное представление: %d\n", resultDecimal);
return 0;
}
В этом примере мы переводим число 42 из десятичной системы в двоичную и число "101010" из двоичной в десятичную. Результаты будут:
Исходное десятичное число: 42 Двоичное представление: 101010 Исходное двоичное число: 101010 Десятичное представление: 42
Обратите внимание, что функции могут быть улучшены для обработки ошибок (например, неверного формата входных данных), но для простоты примера я их не добавил.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili