| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > системы счисления |
| Автор: redwhite90 23.10.2011, 11:52 |
| Есть ли в с++ какое то встроенное средство для перевода чисел из одной системы счисления в другую? |
| Автор: mes 23.10.2011, 13:09 |
для ввода/вывода чисел в заданной системе счисления - да есть .. вот у стандартных потоков для 8-,10-,16-ричных систем : http://www.cplusplus.com/reference/iostream/manipulators/hex/ расширяется путем написания нужного манипулятора.. также можно взглянуть на наследованные от си http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/ и те что ниже.. |
| Автор: redwhite90 23.10.2011, 13:17 |
| а если мне числа надо постоянно переводить из 10 в двоичную СС, причём не при вводе/выводе, то придёся ручками всё писать? |
| Автор: redwhite90 23.10.2011, 13:32 |
| есть 6 битовое число(двоичное). его надо разделить на 2 1 - 1 и последний бит 2 - средние биты и перевести оба в десятичную СС Добавлено @ 13:35 это должны быть две переменных типа int |
| Автор: newbee 23.10.2011, 14:16 | ||
redwhite90, не надо ничего никуда переводить. Все данные в машине хранятся в двоичном виде (есть экзотические недвоичные машины, но не суть важно). Nо, что комп печатает на экран, - лишь способ представления данных в человекочитаемом виде.
А стандартной функции вывода числа в двоичном виде кстати говоря нет. Можешь сделать себе первый урок: вывод двоичного числа и второй урок: выполнение основного задания по разделению числа. |
| Автор: redwhite90 23.10.2011, 14:25 |
| я что-то не понял как это реализовать Добавлено через 1 минуту и 36 секунд у меня исходное число(6 bit) будети иметь вид 101011 например |
| Автор: newbee 23.10.2011, 14:38 |
| redwhite90, почитай про маски и сдвиги, потренируйся, если все еще не будет получаться, возвращайся с более конкретными вопросами "что я делаю не так?". |
| Автор: mes 23.10.2011, 14:38 | ||
перевести в систему счисления можно только строковое представление числа.. в инте оно всегда машинозависимо (т.е. в двоичной сс)
не понятно что Вы этим хотели сказать, но работая с битами никак не сказывается на вывод, и поумолчанию который будет выведен в 10ричной системе счисления.. ну просил же почетче формулировать.. шесть бит могут быть как частью потока данных, так частью переменной, так и строкой.. в вашей интерпретации задачи абсолютноне понятно, чего Вы желаете.. |
| Автор: redwhite90 23.10.2011, 14:42 |
| mes, 6 битовое число, о котором идёт речь, это строка string Добавлено через 4 минуты и 53 секунды и как сделать побитовый XOR у двух строк? string1 10101010101111010100101 string2 11010101010111000000010 есть какие-то конверторы? |
| Автор: mes 23.10.2011, 14:48 |
тоггда посмотрите сюда : http://www.cplusplus.com/reference/stl/bitset/ Добавлено через 57 секунд http://www.cplusplus.com/reference/stl/bitset/operators/ |
| Автор: redwhite90 23.10.2011, 15:41 |
| mes, спасибо - то, что надо. строку только резать наверное как-то криво придётся при помощи [] |
| Автор: mes 23.10.2011, 16:25 | ||
зачем резать ? смотрите внимательней на конструкторы битсета |
| Автор: redwhite90 23.10.2011, 22:22 |
| как я понял можно только со 2-ого по 4-ый бит. а чтоб 1-ый и последний (не второй) - так нельзя |
| Автор: redwhite90 23.10.2011, 22:59 |
| как я понял можно только со 2-ого по 4-ый бит. а чтоб 1-ый и последний (не второй) - так нельзя |
| Автор: mes 23.10.2011, 23:30 | ||
нельзя что ? загрузить из строки ? загружайте все, а потом середину стирайте.. |
| Автор: redwhite90 25.10.2011, 00:08 |
| это тоже выйдет 2 действия) |
| Автор: ensalada1 16.4.2013, 09:50 |
| Что то прям вообще тяжко понять)) Делфи проще будет... |