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

из строки --> Число - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ сумма элементов бинарного дерева http://www.cyberforum.ru/cpp-beginners/thread96298.html
Здраствуйте, помогите, пожалуйста, написать прогу. Задача: Найти сумму с 3 по 6 элементов левой ветки, а также с 1 по 3 элемент правой ветки(сумму записать в одну переменную)
C++ Удалить столбец матрицы(а не просто невыводить) Помогите удалить столбец матрицы в которой содержится максимальный элемент. массив динамический. главное не просто не выводить, а именно удалить и указать номер удаленного столбца. http://www.cyberforum.ru/cpp-beginners/thread96286.html
Поменять знак всех локальных максимумов C++
Дана матрица размера M на N. Элемент матрицы называется ее локальным максимумом, если он больше всех окружающих его элементов. Поменять знак всех локальных максимумов данной матрицы на противоположный. При решении допускается использовать вспомогательную матрицу. Задача на С
Найти количество элементов C++
Дано целое число N и набор из N целых чисел. Найти количество элементов, расположенных перед первым минимальным элементом. Масив не использовать. Задача С
C++ Сформировать новый масив http://www.cyberforum.ru/cpp-beginners/thread96270.html
Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент BK равен сумме элементов массива A с номерами от 1 до K.
C++ Повернуть матрицу Дана квадратная матрица A порядка M. Повернуть ее на угол 90° в отрицательном направлении, то есть по часовой стрелке (при этом элемент A1,1 перейдет в A1,M, элемент A1,M — в AM,M и т. д.). Вспомогательную матрицу не использовать. Задача на С подробнее

Показать сообщение отдельно
insideone
Модератор
Автор FAQ
 Аватар для insideone
3620 / 898 / 47
Регистрация: 10.01.2010
Сообщений: 2,421
16.02.2010, 22:48     из строки --> Число
C++
1
2
3
4
5
6
7
8
    int res = 0;
    std::string str = "1001";
    for (int i = str.length()-1; i > -1; i--)
    {
        res = res << 1;
        res = res | (str[i]-'0');
    }
    std::cout << res;
Идем от последней буквы к первой, (str[i]-'0') возвращает 0 если в строке эта буква была '0' ... и 1 если '1'. res = res | просто записывает в последний бит то что мы получили. Чтобы записать следующую букву не поверх мы смещаем res = res << 1;... т.е допустим уже было записано 111 а после << будет 1110 в эту "выделенную" ячейку мы и запишем новую букву... ну и так до конца строки
 
Текущее время: 15:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru