Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Инвертировать двоичные данные (http://forums.kuban.ru/f1040/invertirovat-_dvoichnye_dannye-8974622.html)

SergeyS 27.10.2019 14:24

Инвертировать двоичные данные
 
Помогите инвертировать двоичные данные.
поменять первый байт с последним, второй с предпоследним и т.д

Блондинка в шок 27.10.2019 17:42

[quote=SergeySS;47202868]поменять первый байт с последним, второй с предпоследним и т.д [/quote] хм..
это вроде как получится то же самое, что прочитать двоичные данные не слева направо,а наоборот, справа налево? или ошибаюсь? если нет, тогда
хм..
ЧтениеДанных = Новый ЧтениеДанных(Поток, КодировкаТекста.ANSI, ПорядокБайтов.BigEndian)
где ПорядокБайтов от старшего к младшему (англ. big-endian — большим концом) или от младшего к старшему (англ. little-endian — малым концом)
(с)

SergeyS 28.10.2019 06:25

Вроде то, но у меня до и после одно и тоже, что я делаю не так?
ЧтениеДанных = Новый ЧтениеДанных(МоиДвоичныеДанные, КодировкаТекста.UTF8, ПорядокБайтов.BigEndian);
РЧД = ЧтениеДанных.Прочитать();
ИнвертированныеДД = РЧД.ПолучитьДвоичныеДанные();
ЧтениеДанных.Закрыть();

ПорядокБайтов.BigEndian - так же одна и те же ДД до и после

Блондинка в шок 28.10.2019 11:23

Не, ну я ж тебе не готовое решение давала, а наводку, где посмотреть в синтаксис-помощнике.
Что, неужели одни и те же ДД и в таком коде
ЧтениеДанных = Новый ЧтениеДанных(МоиДвоичныеДанные, КодировкаТекста.UTF8, ПорядокБайтов.[b]Big[/b]Endian);

и в таком вот коде:
ЧтениеДанных = Новый ЧтениеДанных(МоиДвоичныеДанные, КодировкаТекста.UTF8, ПорядокБайтов.[b]Little[/b]Endian);

?
тогда действительно странно :)

Ткачик 28.10.2019 15:53

[quote=Блондинка в шок;47205082]тогда действительно странно :)[/quote] Ничего странного: BigEndian и LittleEndian задают порядок байтов в [b]слове Юникода[/b], а не в потоке (или файле).

Блондинка в шок 28.10.2019 16:40

4-Ткачик >а-а-а..

SergeyS 29.10.2019 06:16

Разобрался БуферДвоичныхДаныых.Перевернуть()


Текущее время: 13:13. Часовой пояс GMT +3.