1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
1 | |
Преобразовать целые числа в битовую посследовательность30.01.2013, 20:28. Показов 5201. Ответов 15
Метки нет (Все метки)
Имеется в файле посследовательность целых чисел X1,X2,X3,X4 unsigned long int, расположенных построчно. Нужно преобразовать эти целые числа в битовую посследовательность x1 1, x1 2, x1 3, x1 4, x1 5, ..., x1 31, x1 32, x2 1, x2 2, x2 3, x2 4, x2 5, ..., x2 31, x2 32, x3 1, ... (где x1 1 – младший бит первого числа, x2 32 – старший (32-й) бит второго числа).
Не понимаю как это осуществить Перевести сначала числа в 2-ую систему счисления, а потом как? Добавлено через 1 час 46 минут help хотя-бы подскажите в каком направлении двигаться
0
|
30.01.2013, 20:28 | |
Ответы с готовыми решениями:
15
Преобразовать строки в целые числа, просуммировать и вывести сумму 4 значений Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию. Даны целые массивы А[5], В[5] и значения R и F. Каждый массив преобразовать по правилу: Даны целые числа р и q. Получить все делители числа q, взаимно простые с р |
Неэпический
|
||||||
30.01.2013, 20:52 | 2 | |||||
Как вариант:
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
30.01.2013, 21:20 [ТС] | 3 |
0
|
Неэпический
|
||||||
30.01.2013, 22:08 | 4 | |||||
1
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
30.01.2013, 23:55 [ТС] | 5 |
К сожалению с изучаю только год и не владею такими сложными вещами поэтому и непонятно
Добавлено через 22 минуты А нельзя как-нибудь попроще представить это код? чтоли ближе к сишному? Добавлено через 59 минут Если бы можно было представить это без векторов,,потоков, а через циклы и функции я бы всё поняла
0
|
Неэпический
|
||||||
31.01.2013, 02:27 | 6 | |||||
Так?
1
|
31.01.2013, 04:19 | 7 | |||||
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
31.01.2013, 12:04 [ТС] | 8 |
Да спасибо огромное теперь более понятным языком написано Получается вот эти вот числа: 255 32423 38297498 она переводит в битовую посследовательность? я правильно понимаю?
Добавлено через 20 минут Пробовала этот код но выдаёт много warning 3\main.c(43): error #2001: Syntax error: expected ';' but found 'buff'. 3\main.c(43): error #2048: Undeclared identifier 'buff'. 3\main.c(43): error #2048: Undeclared identifier 'temp'. 3\main.c(50): warning #2131: Shifting an 'int' by 32 bits is undefined. 3\main.c(58): warning #2131: Shifting an 'int' by 32 bits is undefined. 3\main.c(43): warning #2114: Local '__int64' is not referenced.
0
|
31.01.2013, 12:09 | 9 |
Это не warning, это ошибки. В вашем компиляторе имя типа int64 не такое как в Visual Studio. Попробуйте убрать одно подчеркивание, или читайте документацию к вашему компилятору.
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
31.01.2013, 12:13 [ТС] | 10 |
0
|
31.01.2013, 12:27 | 11 | |||||
warning должен быть один в 24 строке. Возможная потеря точности. Его можно избежать, если написать так:
Добавлено через 12 минут Еще заметил ошибку свежим взглядом. `long' надо всюду заменить на `unsigned long'. Эта ошибка может проявляться при больших исходных числах.
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
31.01.2013, 12:28 [ТС] | 12 |
Да вроде нормально, только я непонимаю что это за числа и откуда они взялись 0xFFFFFFFF80000000 0xFFFFFFFF 0x80000000 и buff - это временное хранилище?
0
|
31.01.2013, 12:32 | 13 |
Это маски для выделения битов. buf временное хранилище. Туда добавляются предварительно сдвинутые на нужное число битов исходные числа. По мере заполнения младшие 32 бита уходят в результирующий массив b, а хранилище сдвигается вправо, выталкивая эти биты и освобождая место для новых поступлений массива a.
0
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
31.01.2013, 12:36 [ТС] | 14 |
Я что-то про маски сразу и подумала А если мне нужно считывать из файла а не из массива а[n]? И откуда мы знаем на сколько нужно сдвигать биты?
0
|
31.01.2013, 12:44 | 15 |
Тогда нужно массив предварительно ввести. При этом будет определен размер n.
Это делает длинный цикл for. Он, двигаясь вправо, ищет первый ненулевой бит в хранилище. Этот бит будет старшим битом предыдущего числа a. Следующее число должно сдвинуться на m, чтобы его младший бит следовал за старшим битом предыдущего числа.
1
|
1 / 1 / 0
Регистрация: 10.03.2012
Сообщений: 120
|
|
31.01.2013, 12:46 [ТС] | 16 |
аааа всё теперь ясно! спасибки!
0
|
31.01.2013, 12:46 | |
31.01.2013, 12:46 | |
Помогаю со студенческими работами здесь
16
Дано два числа А и В (А<В). Вывести в порядке увеличения все целые числа Даны целые числа, удалить все числа со значением максимального из них Даны целые числа р и q. Получить все делители числа q, взаимно простые с р. Даны два целых числа M но N. Вывести все целые числа из промежутка [M,n] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |