Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/64: Рейтинг темы: голосов - 64, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 17.09.2018
Сообщений: 26
1

Дана строка, изображающая двоичную запись целого положительного числа. Вывести строку, изображающую десятичную запись эт

24.02.2019, 21:46. Показов 12292. Ответов 11

Author24 — интернет-сервис помощи студентам
Не врубаюсь вообще. Прошу использовать только библиотекu <cstring> ну и стандартные тоже можно
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2019, 21:46
Ответы с готовыми решениями:

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

Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку изображающую двоичную запись этого же числа
Вот так вот

Дана строка, изображающая двоичную запись целого числа. Вывести строку, изображающую десятичную запись этого же числа
Дана строка, изображающая двоичную запись целого числа. Вывести строку, изображающую десятичную...

Дана строка, изображающая 10-ную запись числа, вывести строку, изображающую его 2-ную запись
дана строка, изображающая десятичную запись целого положительного числа. вывести строку,...

11
11 / 33 / 15
Регистрация: 29.04.2014
Сообщений: 225
24.02.2019, 22:04 2
Идеи есть?
0
0 / 0 / 0
Регистрация: 17.09.2018
Сообщений: 26
24.02.2019, 22:09  [ТС] 3
Дана строка, изображающая двоичную запись целого
положительного числа. Вывести строку, изображающую десятичную
запись этого же числа.
Думаю можно формулу перевода всунуть после ввода строки, а потом записать в новую строку, но не знаю как реализовать код
0
6107 / 3461 / 1406
Регистрация: 07.02.2019
Сообщений: 8,794
24.02.2019, 23:48 4
например 101100 это 1*(2^5)+0*(2^4)+1*(2^3)+1*(2^2)+0*(2^1)+0*(2^0)
0
Заблокирован
25.02.2019, 08:48 5
Ахтунг! Не отлаживал, писал на заборе!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool TryBinToUInt(char* binstr, DWORD &dwData)
{
  if (!s) return false;
  dwData = 0;
  
  while (*s)
  {
    if (*s < 0x30 || *s > 0x31) return false;
    dwData = (dwData << 1) + *s++ - 0x30;
  }
  
  return true;
}
0
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
25.02.2019, 09:20 6
Лучший ответ Сообщение было отмечено pogen как решение

Решение

pogen,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
int main() {
    char str[] = "101110101011";
 
    int num = 0;
    for (int i = 0; str[i]; i++) {
        num += (str[i] - '0') * pow(2, strlen(str) - i - 1);
    }
    cout << num << endl;
 
    return 0;
}
1
Verevkin
25.02.2019, 09:30
  #7

Не по теме:

Avaddon74, За использование pow() в целочисленных действиях надо руки отрывать. Особенно за вычисление целой степени числа 2.

0
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
25.02.2019, 09:37 8
Цитата Сообщение от Verevkin Посмотреть сообщение
Особенно за вычисление целой степени числа 2
Он новичек, я сомневаюсь что они побитовые сдвиги проходили
0
Заблокирован
25.02.2019, 09:46 9
Цитата Сообщение от Avaddon74 Посмотреть сообщение
Он новичек, я сомневаюсь что они побитовые сдвиги проходили
Ну умножение на 2 никто не запрещал? Нахрена городить функцию возведения в степень, возвращающую результат с плавающей точкой?

Да и форум для того и есть, чтобы люди учились. Зачем писать в ответ очевидный говнокод? Это же вредительство.
0
571 / 353 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
25.02.2019, 10:50 10
Цитата Сообщение от Verevkin Посмотреть сообщение
Да и форум для того и есть, чтобы люди учились.
Если бы он хотел научиться, он бы сам написал. А ему это нафиг не нужно, а мне тем-более, написал как можно проще код.
Если именно вас он не устраивает, перепишите так как считаете нужным
0
823 / 626 / 321
Регистрация: 24.02.2017
Сообщений: 2,209
25.02.2019, 13:11 11
C++
1
2
3
4
5
6
7
8
  char n2[] = "101110101011";
  int i=strlen(n2),p=1,n10=0;
 
  while(i--){
   n10+=(n2[i]-'0')*p;
   p*=2;
   }
   cout<<n10;
0
2848 / 1997 / 986
Регистрация: 21.12.2010
Сообщений: 3,705
Записей в блоге: 10
25.02.2019, 13:31 12
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <string>
#include <cstdlib>
 
 
int main()
{
    std::string str{ "110" };
    std::cout << strtol(str.c_str(), nullptr, 2);
}
0
25.02.2019, 13:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2019, 13:31
Помогаю со студенческими работами здесь

Вывести строку, изображающую десятичную/двоичную запись числа
Дана строка, изображающая двоичную1|десятичную2 запись целого числа. Вывести строку, изображающую...

Вывести строку, изображающую десятичную (двоичную) запись числа
Дана строка, изображающая двоичную (десятичную) запись целого числа. Вывести строку, изображающую...

Дана строка, изображающая десятичную запись целого число
Дана строка, изображающая десятичную запись целого числа. Вывести строку, изображающую двоичную...

Вывести строку, изображающую десятичную запись числа
Дана строка, изображающая двоичную запись целого положительного числа. Вывести строку, изображающую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru