Hello all, I'm trying to convert a function done in Delphi (pascal) to PHP. This function is part of simple text encryption/decryption method. However, I have a really hard time to make this work in PHP. This is the Delphi code:
Function RotateBits(C: Char; Bits: Integer): Char; var SI : Word; begin Bits := Bits mod 8; // Are we shifting left? if Bits < 0 then begin // Put the data on the right half of a Word (2 bytes) SI := MakeWord(Byte(C),0); // Now shift it left the appropriate number of bits SI := SI shl Abs(Bits); end else begin // Put the data on the left half of a Word (2 bytes) SI := MakeWord(0,Byte(C)); // Now shift it right the appropriate number of bits SI := SI shr Abs(Bits); end; // Finally, Swap the bytes SI := Swap(SI); // And OR the two halves together SI := Lo(SI) or Hi(SI); Result := Chr(SI); end; and this the beginning of my attempt to do the same thing in PHP: function RotateBits($C, $Bits) { $Bits = $Bits % 8; if ($Bits < 0 ) { $C = $C << abs($Bits); } else { $C = $C >> abs($Bits); } return chr($C); } In the Delphi code the MakeWord function is a macro: #define MAKEWORD(a, b) \ ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8)) And Swap exchanges the high order byte with the low order byte of the word. Now my question is, how can I work with bytes and words in PHP? The closest I've found is just the integer, that may be of different sizes depending on system. Or, as a workaround, is there any way to detect the number of bytes an integer is on the current system? Thanks in advance. Best regards, Stefan Pettersson -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]