0
我需要將無符號整數轉換爲4字節的字符串才能在套接字上發送。將Int轉換爲4字節的PHP字符串
我有以下代碼,它的工作原理,但它感覺......噁心。
/**
* @param $int
* @return string
*/
function intToFourByteString($int) {
$four = floor($int/pow(2, 24));
$int = $int - ($four * pow(2, 24));
$three = floor($int/pow(2, 16));
$int = $int - ($three * pow(2, 16));
$two = floor($int/pow(2, 8));
$int = $int - ($two * pow(2, 8));
$one = $int;
return chr($four) . chr($three) . chr($two) . chr($one);
}
我的朋友誰使用了C說,我應該能夠bitshifts這樣做,但我不知道怎麼和他是不是用PHP非常熟悉,是有幫助的。任何幫助,將不勝感激。
要反過來做我已經有了下面的代碼
/**
* @param $string
* @return int
*/
function fourByteStringToInt($string) {
if(strlen($string) != 4) {
throw new \InvalidArgumentException('String to parse must be 4 bytes exactly');
}
return (ord($string[0]) << 24) + (ord($string[1]) << 16) + (ord($string[2]) << 8) + ord($string[3]);
}
男人,這是完美的!哈哈,我現在感覺很傻!我會在讓我接受這個答案的時候。 – donatJ 2014-10-03 19:00:57