Преобразование типов

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

ua6em пишет:

Языками не владею )))
Выше предлагали через print, но это даст только символьное представление, кодами таблицы символов для ардуины не владею и, не думаю что он будет совпадать с самим значением, в PC под DOS цифры начинаются с десятного кода 48 - 0, 49 -1 и т д. ( PS да погорячился, не зная истинных значений, значит таблицы в 256 байт будет достаточно) ))) PPS хотя если ряд значений непрерывный, то можно от кода символа выводимого как CHAR отнимать смещение и, тогда 10 байт таблицы хватит)
Я слышал язык С строгий и не допускает такое вольное обращение с переменными, в ассемблере Ты же БОГ

Язык С - прост как палка, и позволяет делать практически всё, что можно делать и на Ассемблерах .. этакий "командно-независимый Ассемблер". Собственно поэтому он так живуч. Не на до его бояться. :)

На "С" сложно писать самомодифицирующиеся программы, куски кода, имеющие НЕСКОЛЬКО (больше 1) интерпретаций исполнительной системой в зависимости от начального смещения точки старта ну и ряд иных "мелочей", которые на практике применяются крайне редко. Все остальное - "да пожалуйста" (ручное приведение типов к этому случаю).

Ещё раз: не так срашен черт, как его Малюта.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

Языками не владею )))

Русским?

Цитата:

Выше предлагали через print, но это даст только символьное представление, кодами таблицы символов для ардуины не владею и, не думаю что он будет совпадать с самим значением, в PC под DOS цифры начинаются с десятного кода 48 - 0, 49 -1 и т д.

ISO-646, RFC-2278, ISO-10646, US-ASCII, ISO-8859, UTF-8, а также отечественные КОИ-7, КОИ-8 (ГОСТ 19768-74), "кодировка ГОСТ" и "альтернативная кодировка ГОСТ".

Цитата:

( PS да погорячился, не зная истинных значений, значит таблицы в 256 байт будет достаточно) )))

Ну вот и напишите (по-русски) алгоритм, как, испольуя таблицу, произвести предлагаемую Вами перекодировку (таблицу, коль скоро она небольшая, тоже лучше привести).

Цитата:

Я слышал язык С строгий и не допускает такое вольное обращение с переменными, в ассемблере Ты же БОГ

Напротив, язык Си не обладает строгой типизацией (в отличие, например, от Паскаля) и целые, логические и символьные типы в нем не различаются.

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

Остановимся на том, что в некоторой строковой переменной уже имеется десятичное представление числа, то-есть пусть это будет 000999!
Начало строковой переменной:
100 48
101 48
102 48
103 57
104 57
105 57

Тут даже табличные преобразования не нужны, осталось побайтно отнять 48

100 0
101 0
102 0
103 9
104 9
105 9

ТС этого хотел?
 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Нет, он хотел число 0x000003e7 преобразовать в число 0x00000999.

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

andriano пишет:

Нет, он хотел число 0x000003e7 преобразовать в число 0x00000999.


Я  и говорю, преобразовать физически, чтобы в последних байтах были девятки нет проблем.
Это будет число? Это мы оперируем с этими данными как с числами, а процессору безразлично жеж

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

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

Ну а чтобы формализовать, как именно нужно преобразовывать, сформулирую: нужно десятичное число в диапазоне от 0 до 99999999 преобразовать так, чтобы шестнадцатиричное представление нового числа совпадало с десятичным представлением старого.

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

andriano пишет:

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

Ну а чтобы формализовать, как именно нужно преобразовывать, сформулирую: нужно десятичное число в диапазоне от 0 до 99999999 преобразовать так, чтобы шестнадцатиричное представление нового числа совпадало с десятичным представлением старого.

Так уже определились, не нужна тут таблица )))
PS да, кстати, я паяю в бинокулярных очках, попробуйте, Вам понравится

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

Arhat109-2 пишет:

Язык С - прост как палка, и позволяет делать практически всё, что можно делать и на Ассемблерах .. этакий "командно-независимый Ассемблер". Собственно поэтому он так живуч. Не на до его бояться. :)

На "С" сложно писать самомодифицирующиеся программы, куски кода, имеющие НЕСКОЛЬКО (больше 1) интерпретаций исполнительной системой в зависимости от начального смещения точки старта ну и ряд иных "мелочей", которые на практике применяются крайне редко. Все остальное - "да пожалуйста" (ручное приведение типов к этому случаю).

Ещё раз: не так срашен черт, как его Малюта.

Пропробовай на С сделать циклический сдвиг одной командой. RCL и RCR в терминах intel, ну или RCLA, RCRA в Z80. :-)

sadman41
Offline
Зарегистрирован: 19.10.2016

DetSimen пишет:

Пропробовай на С сделать циклический сдвиг одной командой. RCL и RCR в терминах intel, ну или RCLA, RCRA в Z80. :-)

А попробовай на асме класс написать... Вот тотоже ;) 

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

sadman41 пишет:

DetSimen пишет:

Пропробовай на С сделать циклический сдвиг одной командой. RCL и RCR в терминах intel, ну или RCLA, RCRA в Z80. :-)

А попробовай на асме класс написать... Вот тотоже ;) 

А я писал :-)

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

DetSimen пишет:

sadman41 пишет:

DetSimen пишет:

Пропробовай на С сделать циклический сдвиг одной командой. RCL и RCR в терминах intel, ну или RCLA, RCRA в Z80. :-)

А попробовай на асме класс написать... Вот тотоже ;) 

А я писал :-)


 

На АСМе даже дед сможет, а вот попробовать в машинных кодах без книжки под рукой )))

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

Я найду, у мня где-то архив на CD есь. 

sadman41
Offline
Зарегистрирован: 19.10.2016

А на перфокартах смогёшь?

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

Нет

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

PS да, кстати, я паяю в бинокулярных очках, попробуйте, Вам понравится

В таких?

Мне не понравилось.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

DetSimen пишет:

Пропробовай на С сделать

А попробовай на асме класс написать... 

А ты на С попробовай :)

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Arhat109-2 пишет:

Язык С - прост как палка .... На "С" сложно писать самомодифицирующиеся программы, куски кода, имеющие НЕСКОЛЬКО (больше 1) интерпретаций исполнительной системой в зависимости от начального смещения точки старта ну и ряд иных "мелочей", которые на практике применяются крайне редко. 

Отлито в граните!

Logik
Offline
Зарегистрирован: 05.08.2014

а какой язык для самомодифицирующейся программы получше будет?

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Таки Лисп и его семейство. Там вообще нет никакой разницы между программами и данными - исполнять и обрабатывать можно всё, что угодно.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

DetSimen пишет:

Arhat109-2 пишет:

Язык С - прост как палка, и позволяет делать практически всё, что можно делать и на Ассемблерах .. этакий "командно-независимый Ассемблер". Собственно поэтому он так живуч. Не на до его бояться. :)

На "С" сложно писать самомодифицирующиеся программы, куски кода, имеющие НЕСКОЛЬКО (больше 1) интерпретаций исполнительной системой в зависимости от начального смещения точки старта ну и ряд иных "мелочей", которые на практике применяются крайне редко. Все остальное - "да пожалуйста" (ручное приведение типов к этому случаю).

Ещё раз: не так срашен черт, как его Малюта.

Пропробовай на С сделать циклический сдвиг одной командой. RCL и RCR в терминах intel, ну или RCLA, RCRA в Z80. :-)

Делал, на CP/M. Только надо было кодогенератор у компилятора чутка подправить - научить его что такие сдвиги "бывают", в частности для "беззнаковых целых". Не проблема.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Logik пишет:
а какой язык для самомодифицирующейся программы получше будет?
Разумный,просто надо сначало подумать , а потом хвататься за код. Пишется на языке "процессор" который и обрабатывает уже "данные-программу" в которые  вносит достижения "разума" самомодефицируемой программы. Ведь что такое обновление программ- это и есть модефикация программы но уже ручками программистов. А появление самомодефицируемых программ уже эти ручки и отрубает и язык программирования самомодефицируемых программ или отпадает или постояно самомодефицируется произволом самой программы.