Что нового

Не работает BitXOR, если содержится буква в данных

timsky

Осваивающий
Сообщения
93
Репутация
28
Возникла задача поксорить данные. При чтении файла в бинарном виде часть байтов содержит буквы (HEX? Почему?) и BitXOR() буквы тупо отсекает:
Код:
MsgBox(0, '6C XOR 1 = 6D', BitXOR('6C', 1))


Много чего перепробовал, но т.к. все эти битовые операции для меня темный лес никак не могу побороть проблему :(
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Код:
MsgBox(0, '6C XOR 1 = 6D', BitXOR(Dec('6C'), 1))



Добавлено:
Сообщение автоматически объединено:

а вообще странно. Dec нужен, именно в том случае, если аргумент строка. но если, как ты говоришь, аргумент попадает в ксор через бинарное чтение, то по идее должно быть без всяких функций. вот такой код выдал мне правильный результат
Код:
$h = FileOpen(@ScriptDir & '\test.txt', 16)
$a = FileRead($h)
ConsoleWrite($a & @CRLF)
ConsoleWrite(BitXOR($a, 1) & @CRLF)

где в файле text.txt содержалась цифра 1 (6c - в бинарном представлении)
 

Guezt

Продвинутый
Сообщения
335
Репутация
82
Код:
MsgBox(0, '6C XOR 1 = 6D', BitXOR(Dec('6C'), 1) &" "& Hex("109",2))




Добавлено:
Сообщение автоматически объединено:

упс Kaster опередил )
 
Верх