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

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

24.02.2019, 21:46. Просмотров 4123. Ответов 11

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

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

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

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

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

11
43 / 31 / 15
Регистрация: 29.04.2014
Сообщений: 197
24.02.2019, 22:04 2
Идеи есть?
0
0 / 0 / 0
Регистрация: 17.09.2018
Сообщений: 26
24.02.2019, 22:09  [ТС] 3
Дана строка, изображающая двоичную запись целого
положительного числа. Вывести строку, изображающую десятичную
запись этого же числа.
Думаю можно формулу перевода всунуть после ввода строки, а потом записать в новую строку, но не знаю как реализовать код
0
3528 / 1980 / 832
Регистрация: 07.02.2019
Сообщений: 5,309
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
Продавец времени
4023 / 2295 / 515
Регистрация: 12.03.2015
Сообщений: 11,470
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
565 / 348 / 132
Регистрация: 15.09.2017
Сообщений: 1,230
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
565 / 348 / 132
Регистрация: 15.09.2017
Сообщений: 1,230
25.02.2019, 09:37 8
Цитата Сообщение от Verevkin Посмотреть сообщение
Особенно за вычисление целой степени числа 2
Он новичек, я сомневаюсь что они побитовые сдвиги проходили
0
Продавец времени
4023 / 2295 / 515
Регистрация: 12.03.2015
Сообщений: 11,470
25.02.2019, 09:46 9
Цитата Сообщение от Avaddon74 Посмотреть сообщение
Он новичек, я сомневаюсь что они побитовые сдвиги проходили
Ну умножение на 2 никто не запрещал? Нахрена городить функцию возведения в степень, возвращающую результат с плавающей точкой?

Да и форум для того и есть, чтобы люди учились. Зачем писать в ответ очевидный говнокод? Это же вредительство.
0
565 / 348 / 132
Регистрация: 15.09.2017
Сообщений: 1,230
25.02.2019, 10:50 10
Цитата Сообщение от Verevkin Посмотреть сообщение
Да и форум для того и есть, чтобы люди учились.
Если бы он хотел научиться, он бы сам написал. А ему это нафиг не нужно, а мне тем-более, написал как можно проще код.
Если именно вас он не устраивает, перепишите так как считаете нужным
0
501 / 377 / 238
Регистрация: 24.02.2017
Сообщений: 1,358
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
2190 / 1704 / 853
Регистрация: 21.12.2010
Сообщений: 3,023
Записей в блоге: 11
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2019, 13:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.