Перевод текста (символов и цифр) в двоичный код и обратно

Савелий
Offline
Зарегистрирован: 26.10.2019

Не используя Serial. Cпасибо

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

сейчас подтянутся, у кого есть хрустальный шар

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Пожалуйста.

nik182
Offline
Зарегистрирован: 04.05.2015

Открою страшную тайну. Текст (символы и цифры) в компьютере живут в двоичном коде. Туда и обратно всегда код двоичный. Вырази точнее свои хотелки. Откуда куда надо перевести?  

b707
Offline
Зарегистрирован: 26.05.2017

Савелий, некому переводить... был у нас толмач, ему переводить - а он лыка не вяжет! Вот мы его в кипятке и сварили...

Савелий
Offline
Зарегистрирован: 26.10.2019

Нужно для радиомодуля, преобразовать символы в 1 и 0 (тоесть у нас, например, есть строка "Hello world 2019-2020" или массив int buf [5] = {10,87,75,12,89}, а получить нужно последовательность 1 и 0 приемник это поймает и должен перевести обратно в символы\цифры) .

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

это называется бинарная последовательность, погугли

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Савелий пишет:

Нужно для радиомодуля, преобразовать символы в 1 и 0 (тоесть у нас, например, есть строка "Hello world 2019-2020" или массив int buf [5] = {10,87,75,12,89}, а получить нужно последовательность 1 и 0 приемник это поймает и должен перевести обратно в символы\цифры) .

Ну так, как уже сказали, это все и так в памяти хранится в виде 1 и 0, ничего преобразовывать не надо.  Используйте операцию сдвига и скармливайте модулю бит за битом. 

Что за радиомодуль такой?

Савелий
Offline
Зарегистрирован: 26.10.2019

Можно пример кода?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Можно пример модуля?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Савелий, алгоритм простой - побайтово проходишь нужный набор данных, для каждого байта - побитово смотришь: если бит установлен - отправляешь единичку, если нет - отправляешь нолик. В неполном коде это будет выглядеть примерно так:

void sendByte(uint8_t b)
{
	for(size_t i=0;i<sizeof(b);i++)
	{
		if(b & (1 << i))
		{
			sendOne();
		}
		else
		{
			sendZero();
		}
	}
}

uint8_t buff[3] = {1,2,3};

for(size_t i=0;i<sizeof(buff)/sizeof(buff[0]);i++)
{
	sendByte(buff[i]);
}

 

nik182
Offline
Зарегистрирован: 04.05.2015
DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Савелий пишет:

Нужно для радиомодуля, преобразовать символы в 1 и 0 (тоесть у нас, например, есть строка "Hello world 2019-2020" или массив int buf [5] = {10,87,75,12,89}, а получить нужно последовательность 1 и 0 приемник это поймает и должен перевести обратно в символы\цифры) .

Савелий
Offline
Зарегистрирован: 26.10.2019

asam пишет:

Можно пример модуля?

http://arduino.ru/forum/apparatnye-voprosy/besprovodnaya-svyaz-arduino#c...

Савелий
Offline
Зарегистрирован: 26.10.2019

Спасибо. Наверное глупый вопрос, но зачем сдвигать байт??

b707
Offline
Зарегистрирован: 26.05.2017

Савелий, судя по вопросам - вы крайне мало соображаете в программировании. байтах и битах и тп

я вам в той теме сразу написал, что к такому модулю кроме преобразования в 0 и 1 вам еще протокол передачи придумать придется. Судя по вашим вопросам, вы вряд ли справитеcь.

Берите NRF24 или JDX40 лучше

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Савелий пишет:

Спасибо. Наверное глупый вопрос, но зачем сдвигать байт??

Чтобы у него пролежней не было.

astwo
Offline
Зарегистрирован: 10.07.2019

Нужен разговорник самоучитель с языка нулей на язык единиц и обратно.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

b707 пишет:

Берите NRF24 или JDX40 лучше

Осмелюсь поправить, JDY-40

Клапауций 003
Offline
Зарегистрирован: 20.07.2019

DetSimen пишет:

b707 пишет:

Берите NRF24 или JDX40 лучше

Осмелюсь поправить, JDY-40

смелый ты - я бы так не смог