2012-01-27 2 views
0

이전 데이터베이스 파일에서이 숫자가 있는데이 숫자 표현을 찾고 있습니다.어떤 종류의 이진 숫자 표현입니까?

숫자는 바이너리 형식으로 저장되며, 그들은 아마도 64 비트 부동 번호, 같은 위치 : 등등 54.123합니다.

그게 내가 필요 때문에 나는 단지 자연 번호를 게시하도록하겠습니다과 필드는없는 분수와 자연수가 포함되어 있습니다.

이 몇 가지 번호는 내가 가진 :

  • 00 : 00000000
  • 01 : 10000100111000000
  • 02 : 1000001001110000000
  • 03 : 1100001110101000000
  • 04 : 100000010011100000000
  • 05 : 101000011000011000000
  • ,
  • 08 : 10000000111000100000
  • 09 : 100100001011111100000
  • 16 : 011100011000000
  • 24 : 10000000101010011100000
+1

어디는, 비트의 나머지는? 당신은 선도 0을 억제 했습니까? 그렇다면 0은 왜 많은 비트로 주어지고, 왜 16은 맨 왼쪽 위치에 0을 가지고 있습니까? – unwind

+0

각 숫자가 64 비트를 사용하여 저장되는 경우 맞춤을 강조하기 위해 모든 숫자를 표시하는 것이 도움이 될 수 있습니다. 8 비트, 15 비트, 23 비트 등을 볼 수 있습니다. 가변 길이 대신 사용할 수 있습니까? – Vlad

+0

예, 재미 있습니다. 나는 파일에서 이것들을 얻었습니다. 그들은 최대 값을 가지고 있지만 그들은 가변 길이로 저장되어있는 것 같아요. 즉 기존의 비주얼 폭스 프로에서의 도움이 있다면이 나의 문제는 내가 접근의 용이성을 위해 고정 길이로이 숫자를 기대하거나, 적어도 당신을 어떻게했는지 8의 배수의 비트 수를 줄 것입니다 – Opi

답변

1

분명히, 읽기 DBFS에 대한 PHP 클래스가 있습니다 : http://www.phpclasses.org/package/1302-PHP-Extract-information-from-a-DBF-database-file.html 가. 그들은 확장 기능이 필요 없다고 말하면서 PHP 기능으로 끝난다.

또는, 해당 필드의 형식을 결정하기 위해 다양한 시청자와 DBF를 검사 할 수 있습니다.

this에 따르면, 번호를 저장하기위한 여러 필드 유형이 있습니다. This은 필드 유형 및 필드 유형에 대해 설명합니다.

어쨌든, 내가 이해 한 것에서 숫자 필드는 기본적으로 ASCII로 저장 될 수 있으며 부동 소수점보다는 고정 길이라고 생각합니다. 따라서 floatval을 사용하면 빠져 나올 수 있습니다. 이러한 가정으로 64 비트 숫자 경우