Что нового

Изменение последовательности байтов с помощью BitShift или BitRotate

Dimmak

Знающий
Сообщения
185
Репутация
9
Подскажите, пожалуйста, как изменить последовательность байтов с помощью BitShift или BitRotate
Исходное значение: 0x 01 EF
Нужное значение: 0x EF 01 :stars:
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Re: [Данные, строки] Вращение значения с помощью BitShift или BitRotate

Dimmak
Попробовал сделать.
1. С помощью Converting numbers преобразовал Hex в Bin:
00FF = 0000000011111111
FF00 = 1111111100000000
Отсюда стало понятно что нужен циклический сдвиг BitRotate для 16 знаков и сдвиг 8 раз.
Код:
MsgBox(0, 'Сообщение', Hex(BitRotate(0x00FF, 8), 4))


Кстати, инструмент по теме IntToBin
Код:
; Author: Malkey
MsgBox(0, 'Сообщение', IntToBin(0xFF00) & @CRLF)

Func IntToBin($iInt) ; coded by Malkey
	Local $b = ""
	For $i = 1 To 32
		$b = BitAND($iInt, 1) & $b
		$iInt = BitShift($iInt, 1)
	Next
	Return $b
EndFunc   ;==>IntToBin
 
Автор
Dimmak

Dimmak

Знающий
Сообщения
185
Репутация
9
Большое спасибо AZJIO
Насколько я понял, обратную последовательность чтения байтов внедрили для удобства и комфорта... ;D
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
_WinAPI_SwapDWord()
_WinAPI_SwapQWord()
_WinAPI_SwapWord()
 

ynbIpb

Скриптер
Сообщения
399
Репутация
110
Ещё вариант: Binary UDF
Код:
#Include "Binary.au3"
$bData = Binary ("0x112233445566778899")
$Ret = _BinaryReverse($bData)
MsgBox (0, "", $Ret)
 
Верх