2010년 8월 19일 목요일

php 에서 소켓 통신 할 때 double 형 데이터를 hex 로 변환


function double2bin( $value ) {
$bin = pack("d", value);
$hex = '';
for ( $i=strlen($bin)-1; $i >=0; $i--) {
$hex .= $bin[$i];
}

// 네트워크로 전송 가능한 바이너리 형태를 반환
return $hex
}

function bin2double( $b, $offset ) {
// 네트워크를 통해 받은 바이너리에서 double 형 데이터가 들어있는 부분을 가져옴
$bin = substr($b, $offset, 8);

$hex = '';

// 네트워크 바이트 순서로 왔으니 순서를 바꾸어줌
for($i=strlen($bin)-1; $i>=0; $i--) {
$hex .=$bin[$i];
}

// php 에서는 unpack 해줘야 함 --> C 랑 달라서 엄청 헤맸음 ㅠㅠ
$arr_val = unpack("d", $hex);

return $arr_val[1];
}
?>

댓글 없음: