If I understand you correctly, I come up with a value of 560 not 561.
$xLittleEndianValue = Binary("0x308C")
;Split the 2 binary bytes into separate bytes (LSByte & MSByte)
$xLSByte = BinaryMid($xLittleEndianValue, 1, 1)
$xMSByte = BinaryMid($xLittleEndianValue, 2, 1)
;Shift the most significant byte's bits 6 bits to the right
;i.e. 10001100 (0x8C) -> 00000010 (0x02)
$xShiftedMSByte = Binary("0x" & Hex(BitShift($xMSByte, 6), 2))
;Concatenate the MSByte and LSByte back into its binary representation
$xLittleEndianResult = Binary("0x" & Hex($xLSByte) & Hex($xShiftedMSByte))
ConsoleWrite(StringFormat("$xLittleEndianValue = %s", $xLittleEndianValue) & @CRLF)
ConsoleWrite(StringFormat("$xLSByte = %s", $xLSByte) & @CRLF)
ConsoleWrite(StringFormat("$xMSByte = %s", $xMSByte) & @CRLF)
ConsoleWrite(StringFormat("$xShiftedMSByte = %s", $xShiftedMSByte) & @CRLF)
ConsoleWrite(StringFormat("$xLittleEndianResult = %s / BigEndian = 0x%04X / Decimal = %i", $xLittleEndianResult, $xLittleEndianResult, $xLittleEndianResult) & @CRLF)
Output:
$xLittleEndianValue = 0x308C
$xLSByte = 0x30
$xMSByte = 0x8C
$xShiftedMSByte = 0x02
$xLittleEndianResult = 0x3002 / BigEndian = 0x0230 / Decimal = 560