![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Павлуха |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Как сделать, чтобы массиву присваивались значение в 16-й системе счисления????
|
|||
|
||||
| urush |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 15.7.2006 Где: Ukraine Репутация: нет Всего: нет |
Уточни пожалуйста: - Массив должен быть символьный? - А значение в 16-й системе ты вводишь из клави или есть другой источник? |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
Павлуха,
пусть дан массив
Это сообщение отредактировал(а) Kuvaldis - 13.11.2006, 01:44 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| Павлуха |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Короче дан массив с обычными цифрами, и надо элементы первого массива записать соответственно в второй масси но в 16-й системе........... |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
Павлуха,
Второй массив - какой? -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| Павлуха |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
короче вот задача.......Введите массив чисел. Реализуйте функцию, которая во второй массив записывает все числа первого массива в шестнадцатеричном изображении которых младшая цифра пять. Элементами массива могут быть или корот-кие, или длинные целые числа. Выведите на экран элементы массивов в шестнадцатеричной системе счисления.
|
|||
|
||||
| Dray |
|
|||
![]() Материалист ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 7.10.2003 Где: г. Всеволожск Репутация: нет Всего: 6 |
Павлуха, в любом случае с точки зрения компьютера они хранятся в двоичной системе счисления в любом массиве. По-этому нельзя заставить программу хранить в целочисленном массиве числа в какой-либо определенной системе счисления. Если число переводить в текст, то там есть возможность представлять его в определенной системе.
Это сообщение отредактировал(а) Dray - 13.11.2006, 01:56 |
|||
|
||||
| Kuvaldis |
|
||||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
Павлуха,
Проверка очень простая: рассматриваешь остаток от деления числа в 10 системе счисления на 16. Если он равен 5, то это как раз и есть нужное тебе число. Записываешь его в массив. При выводе в 16 с/с можно воспользоваться функцией printf() таким образом
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
||||
|
|||||
| anwe |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 9 Всего: 23 |
Павлуха, смотри.
Число десятичной системы делишь на 16. Получаешь частное и остаток. Остаток сравниваешь с таблицей ABCDEF на предмет, если больше 9 то соответственно это будут числа A, B, C, D, E или F. Частное снова делишь на 16 и опять остаток сравниваешь с таблицей. Организовываешь все это дело с помощью рекурсии. Остатки и будут результатом. А записываешь результат с конца, то есть самый первый остаток будет самым левым знаком результата, а последним знаком - последний остаток. Пример: 15732:16=983 остаток 4 983:16=61 остаток 7 61:16=3 остаток 13, после сравнения с таблицей это будет D 3:16=0 остаток 3. Получишь 3D74. А уж дальше отбираешь как хочешь. В сях я не силен, поэтому синтаксис кодировки наберешь, думаю, сам. Kuvaldis,
посмотри задание повнимательнее:
Сначала все цифры надо перевести 16-ричные, а после анализировать на то, какая последняя цифра уже у 16-ричных есть 5 и те заносить в новый массив. Это сообщение отредактировал(а) anwe - 13.11.2006, 02:05 |
||||
|
|||||
| Kuvaldis |
|
||||||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 32 Всего: 61 |
anwe,
я внимательно посмотрел и теперь буду тебе доказывать, что я прав итак, теорема:
Доказательство 1. Для начала немного эмпирического опыта (на твоем примере) 15732 в 10 с/с = 3D74 в 16 с/с Возьмем остаток от деления 15732 % 16 = 4 (1) Случайно ли это? нет что значит запись (1)? а то, что 15732 = 16 * N + 4, где N - какое-то натуральное число ясно, что 16 * N >= 16 теперь вспомним разложение числа в 16 с/с А = В0 + 16^1 * B1 + 16^2 * B2 + ... 16^n * Bn 16^1 * B1 + 16^2 * B2 + ... 16^n * Bn - эти слагаемые больше 16, Теперь возьми остаток от деления левой и правой части. т.е. a % 16 = B0 (остальные слагаемые делятся, у них есть 16 в степени) Теорема доказана. Добавлено @ 02:17 anwe,
А больше и не требуется Это сообщение отредактировал(а) Kuvaldis - 13.11.2006, 02:14 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
||||||
|
|||||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: нет Всего: 93 |
вот я к примеру смотрю и не вижу там слов, что нужно сначала переводить в шестнадцатиречный вид
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| urush |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 15.7.2006 Где: Ukraine Репутация: нет Всего: нет |
Задачу я понял так:
- есть массив с целыми элементами; - нужно записать в другой массив элемент из первого массива, если его младшее число, при переводи элемента из первого массива в 16 с\с, ровное 5; Например есть числа 37 и 2 в десятичной с\с, то поскольку числу 37 в шестнадцатиричной с\с отвечает 0х25 (25), а числу 2 - 0х2 (2), то первое (37 - 0х25) я должен записать во второй массив а числом 2 - 0х2 - пренебречь.
Это сообщение отредактировал(а) urush - 14.11.2006, 08:43 |
|||
|
||||
| archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: нет Всего: 93 |
все вот это можешь заменить одной строкой. поверь, работать будет так же
Добавлено @ 02:40 и ещё, зачем хранить строковые представления? тебе ж сказано "которая записывает во второй массив все числа первого...", а не "все строковые представления элементов первого"...тем более, что ты не удаляешь созданные тобой массивы. короче говоря, нужно так:
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
| urush |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 15.7.2006 Где: Ukraine Репутация: нет Всего: нет |
Я же сказал:
А на счет удаления элементов из динамичной области памяти то нужно сделать следующее: else { n++; delete[] buf; buf = NULL; } а при выводе записать следующее: for(int i=0; i<5-n; i++) // вывожу на экран все переведены в 16 с\ с элементы массива a[] { cout << "mas[" << i << "]: ox" << mas[i] << endl << endl; delete[] mas[i]; mas[i]= NULL; } Сечас внесу все изменения в предыдущий пост. P.S. archimed7592, Как мне кажется проблема заключается в том, что задача сформулирована не корректно, в подтверждение моих слов обрати внимание на то, что каждый из нас формулирует ее по своему, а все из-за того, что в условии нет ни одной запятой, которая расставила бы все точки над "і" Это сообщение отредактировал(а) urush - 14.11.2006, 08:40 |
|||
|
||||
| Rover |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 15.11.2006 Репутация: нет Всего: нет |
А можно вообще в char перевести всё что нужно, а потом на выходе обрабатывать
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |