Nowości z php.internals – binarna notacja dla liczb całkowitych

Oj gorąco ostatnio jest na liście php.internals. Co chwilę coś się ciekawego dzieje, ostatnio na tapecie mamy binarną notację dla liczb całkowitych. Jonah H. Harris zaproponował, by oprócz możliwości wpisywania liczb w systemie 8-owym, 10-ym czy 16-owym można było wpisywać liczby całkowite w systemie binarnym. Powstało oczywiście odpowiednie RFC. Chyba wszystkim na liście dyskusyjnej ten pomysł się spodobał i wygląda na to, że łatka wprowadzająca tą funkcjonalność już niedługo wyląduje w “trunku”.

Jak by to miało wyglądać ? Dla porównania zapis liczby 2010 w trzech dotychczas obsługiwanych systemach zapisu i nowym binarnym:

  • 8: 03732
  • 10: 2010
  • 16: 0x7da
  • 2: 0b11111011010 lub jako flagi – 0b00001, 0b00010, 0b00100, 0b01000, 0b10000

Jak dla mnie ten nowy “ficzer” jest całkowicie zbędny, jednak domyślam się, że dla niektórych okaże się przydatny. Szkoda, że chłopaki nie pomyśleli o jakimś bardziej generycznym zaprojektowaniu tego. Mam na myśli coś w stylu rNxLICZBA. Gdzie N to podstawa systemu liczbowego a LICZBA to liczba zapisana w tym systemie. Wtedy dla binarnego zapisu było by coś w rodzaju r2x01010101 a dla 16-tkowego r16x7da.

  1. thek says:

    Jak dla mnie to ma sensowne tylko jedno zastosowanie… Zrobienie sobie flag w systemie by upchać wiele opcji TRUE/FALSE w jednym polu, bez uciekania się do serializacji. System flag tego typu to w sumie sensowne zastosowanie jedyne jakie mi teraz do głowy przychodzi.

  2. No ja też mam takie wrażenie, że tylko to można z tym zrobić. Chociaż znając życie to ludzie coś jeszcze z tym wykombinują 😉

  3. thek says:

    Taaa… Niech zgadnę. Binarny zapis obrazu B&W? 😀 Szkoda tylko, że takie coś zajmie o wiele mniej miejsca w dowolnym kodowaniu :) Choćby najprostszy RLE upchnie to w znacznie mniejszym rozmiarze.

  1. There are no trackbacks for this post yet.

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.