Вопрос задан 29.07.2023 в 05:46. Предмет Информатика. Спрашивает Муратов Ренат.

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

двоичную, а вторая - наоборот. На языке С
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Петухов Александр.

#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;

}


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для перевода чисел из десятичной системы исчисления в двоичную и обратно, можно использовать следующие функции на языке C:

  1. Функция для перевода из десятичной системы в двоичную:
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"); }
  1. Функция для перевода из двоичной системы в десятичную:
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

Обратите внимание, что функции могут быть улучшены для обработки ошибок (например, неверного формата входных данных), но для простоты примера я их не добавил.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос