Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Написать программу, которая преобразует введенное с клавиатуры восьмиразрядное двоичное число в десятичное - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В одномерном массиве состоящим из "N" вещественных элем. вычислить максимальный по модулю элем. массива http://www.cyberforum.ru/cpp-beginners/thread294348.html
В одномерном массиве состоящим из "N" вещественных элем. вычислить максимальный по модулю элем. массива. Помогите пожалуйста, желательно полностью программу. С меня +
C++ Запрашивать пароль до тех пор, пока он не будет правильно введен Составить программу, которая запрашивает пароль (например, четырехзначное число) до тех пор, пока он не будет правильно введен. http://www.cyberforum.ru/cpp-beginners/thread294346.html
Ввод функции с клавиатуры C++
Здравствуйте. Необходима помощь в написании программы на С. Программа поиска минимума и максимума функции методом кого-то. С методом может еще разберусь, проблема - как сделать, чтобы пользователь...
C++ в исходной матрице 5*5 умножить элементы на номер строки
в исходной матрице 5*5 умножить элементы на номер строки , в которой они находятся ,полученную матрицу вывести на экран Кто сможет решить?
C++ Преобразовать литерную последовательность в другую литерную последовательность всеми описанными ниже способами http://www.cyberforum.ru/cpp-beginners/thread294323.html
Здравствуйте, уже несколько дней мучаюсь над такой задачей : "Имеется литерная последовательность, состоящая из не более чем 30 слов, в каждом из которых не более 5 литер. Слова разделены...
C++ Как описать 2-ой столбик Всем привет!!!Нужно помощь не программе, а в записи 2-ого столбика: Как их описать ?? Просто еще не когда не сталкиволся с этим в С++....Объясните пожайлуста!!! подробнее

Показать сообщение отдельно
resource2008
109 / 109 / 2
Регистрация: 11.03.2011
Сообщений: 421
12.05.2011, 22:41
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdio.h"
#include "math.h"
 
int main()
{
 
    char    keyb_array[10];     // keyboard input buffer
    int     result = 0;
    int counter = 0;
    
    gets(keyb_array);
 
    for (counter = 0; counter < 8; counter++ )
    {
        result += (int)( keyb_array[ counter ] - 0x30 ) * pow(2.0, 7 - counter);
    }
 
    printf("%i", result);
    return result;
}
C++
1
...keyb_array[ counter ] - 0x30...
- переводим символ цифру в число, соответствующее этой цифре

формат ввода: старший разряд ------ младший разряд
если нужен обратный порядок - "pow(2.0, 7 - counter)" заменить на "pow(2.0, counter)"

Добавлено через 9 минут
поперло меня, более красивое и (по идее) быстрое решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdio.h"
 
int main()
{
 
    char    keyb_array[10];     // keyboard input buffer
    int     result = 0;
    int counter = 0;
    
    gets(keyb_array);
 
    for (counter = 0; counter < 8; counter++ )
    {
        result = result<<1;
        result += (int)( keyb_array[ counter ] - 0x30 );
    
    }
 
    printf("%i", result);
    return result;
}
вместо возведения в степень двойки (как нас в школе учили) с помощью pow() лучше, да и проще, использовать побитовый сдвиг
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru