|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.10.2015, 15:41 | #1 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Построить график с бинарными данными
Мне нужно, чтобы на графике было 1 0 1 0 1 0. Сейчас у меня 8 бит обозначается одним числом на графике. Как это исправить?
Код:
|
09.10.2015, 10:57 | #3 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Вопрос сводится всего лишь к тому, что в массиве byte каждое число задано с помощью 8 бит, то есть мой массив byte хранит 8-битные числа. Когда я вывожу на график byte[] mas; mas[1] = 00000100, то на графике получается число 4. Проблема в том, что у меня просто пока примитивное знание языка С в этом вопросе, помогите, пожалуйста, просто сделать так, чтобы это 8-битное число по очереди делилось на числа от 128 до 1, а затем значения сохранялись в новый массив, у которого длина в итоге будет в 8 раз больше. Вроде, подсильная задача любому программисту, дайте хоть некоторые комментарии по этому вопросу, а то сделать не получается, хотя вроде все понимаю и в том же матлабе спокойно делал с помощью цикла и операции arr = [arr newvalue]. Если нет более простых предложений, подскажите, как я могу в данном направлении решить поставленную мною задачу?
|
09.10.2015, 11:01 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Посмотри как битовый сдвиг делается и логическое И ну и само собой цикл над каждым байтом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
09.10.2015, 12:10 | #5 | |||
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Посмотрел, а помогите разобраться? С помошью битового сдвига я могу сдвигать число на 1 знак все время. Например, имею 10010100. Я получаю 8 значений для каждого элемента массива типа byte:
Цитата:
Цитата:
Цитата:
Код:
Я пытался причесать код, вот что с этого получилось, но выдает ошибку, что нельзя делать сдвиг для byte так, как я его делаю. Что не так? Код:
Немного доработал, ошибки нет, но не могу понять, где в отладке можно посмотреть, что теперь из-себя представляет m3? На графике ерунда какая-то получается, хотя уже близко - на графике только 0 и 1. другое дело, что все 1 в начале графика, а все 0 - в конце. Я не понял=( Код:
А если нельзя, то давайте пока отталкиваться от этого кода. Почему-то тоже некорректно конвертирует Код:
Последний раз редактировалось Stilet; 09.10.2015 в 15:49. |
|||
09.10.2015, 15:56 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Могу я предложить такую схему?:
Код:
I'm learning to live...
|
09.10.2015, 16:20 | #7 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Да! Но я не понял, что она делает. Выполнил функцию asbin(), и у меня в окне вывелись 0 и 1. Но это string тип. Ну ок, но я думаю, что в строке я же все-равно должен получить что-то типа "0 1 0 1 1 0 0 1 1 0 0 0", а я получаю "010010 1000111" и тп. Я делаю что-то не так?
Давайте еще раз, потому что не могу, к сожалению, разобраться. У меня есть сообщение "Hello", как и предложил Stillet. Изначально я хотел построить график, на котором будет бинарный сигнал, то есть функция y(t), где y принимает либо 0, либо 1. Теперь я понял, что мне вообще удобнее работать с бинарным массивом, то есть когда у меня есть, например, такой массив: int[] i = [1 0 0 0 0 1 1 1 0 1 1 0 1 1 1 0 ...], а не такой int[] i = [16 32 8 13 19 ...]. Ну задача же, наверное, банальная, где сложность? А Stillet, может Вы правильно подсказали, но я не понял, что код делает, потому что у меня вроде он запустился отлично, но я получаю строку, в которой нули и единицы, но они при конвертации так и преобразуются в 8-битные числа, а это как раз самый важный момент для меня - на график отправить бинарный массив, а не 8-ми битный. Я пользуюсь Вашей функцией так: Код:
2. Я еще понял, что в С# если я сделаю int 32 = "1" или "0", то это будет нецелесообразно по затратам памяти, поэтому можете тут что-то предложить? Мне просто на следующем шаге нужно будет обрабатывать не по 8 бит информации и не по одному, но по 3. 3. А вот насчет графика - проблема серьезная для меня. То есть если я строю массив чисел, то он его выводит. Но тут я не знаю, как хотя бы строку "1 0 0 1 1 1 0 1" конвертировать в массив {1, 0, 0, 1, 1, 1, 0, 1}? Или как ее конвертировать таким образом, чтобы на графике построить эти бинарные значения по оси ординат? Последний раз редактировалось Stilet; 12.10.2015 в 16:17. |
12.10.2015, 16:20 | #8 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Цитата:
I'm learning to live...
|
|||
12.10.2015, 16:46 | #9 |
Форумчанин
Регистрация: 12.02.2010
Сообщений: 787
|
Насчет затрат памяти - компьютер будет использовать 32 бита для хранения 1 бита, и я тут задумался, нормально ли это.
Обрабатывать не по 8 бит информации, а по 3 - я решаю радиотехническую задачу, то есть мне надо модулировать данные 8-PSK модуляцией, поэтому каждые 3 бита информации я буду преобразовывать в другое число. А я привык работать с массивом бит в МАТЛАБ, поэтому тут я только сейчас сообразил, что это не прокатит, потому что массива переменных размерностью в 1 бит я сформировать не смогу. Или я ошибаюсь? Насчет (byte)c & 1 понятно, здорово! Но появился вопрос насчет вывода в график, как можно запихать строчку Код:
Компилятор пишет, что внутри функции он не знает, что такое this. |
12.10.2015, 17:41 | #10 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Короче ты из пальца проблему рождаешь. Цитата:
https://msdn.microsoft.com/ru-ru/lib...vs.110%29.aspx Цитата:
Это же просто подача идеи, разве можно так и с идеями поступать?
I'm learning to live...
|
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести byte в текстовую строку бинарными данными | Krasi | Помощь студентам | 1 | 08.10.2015 15:42 |
Как построить граф,имея таблицу с данными? | Вероника99 | Помощь студентам | 0 | 06.12.2014 20:38 |
Построить График | МакаРомка! | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 02.06.2013 11:17 |
Работа с бинарными данными. | Lestar | C# (си шарп) | 0 | 04.11.2012 22:35 |
Работа с бинарными данными | MyXa | Общие вопросы .NET | 1 | 31.01.2012 07:50 |