Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:93275 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 73736 invoked from network); 12 May 2016 13:32:22 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 12 May 2016 13:32:22 -0000 Authentication-Results: pb1.pair.com header.from=sskaje@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=sskaje@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.213.180 as permitted sender) X-PHP-List-Original-Sender: sskaje@gmail.com X-Host-Fingerprint: 209.85.213.180 mail-ig0-f180.google.com Received: from [209.85.213.180] ([209.85.213.180:36064] helo=mail-ig0-f180.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 5B/DE-28272-5E584375 for ; Thu, 12 May 2016 09:32:21 -0400 Received: by mail-ig0-f180.google.com with SMTP id lr7so54790399igb.1 for ; Thu, 12 May 2016 06:32:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=+6aMwe6kjbPE2D56pD9WOSgbJkJIpJWZyRqJ1x6G+gU=; b=Fz59bFZxeLGqSqbaPU9HAlIUGAC5jQIzPsSM7P6boaAbNETyZaCP1aEbPlyccuymQi AMY1sJpRODG6I7atqPx8WyzYHnQTeVRnC4pMOlCDs4gHWVmD+/HG7Tnyh+/KO/1SjFTK 4LMY4TlVOG1XqwIcxKT6w7CmlgrZzatlp5glaEhLcds5EIqKQheaRw6Pn/MlNKWyx0Ro LqHXYf/73Ubvz+bzlbPzvgXLbKSDnQEK0SYl1ZUr3p1MzmjsMb93gBYZQRd5j8qwyBFP FTRIsrqsEnwJXBdSHRu2lHlv0bNEF10j6jDD79ZkP5LN0zHD5StYdkZlnUi+NK88Rimz IdMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=+6aMwe6kjbPE2D56pD9WOSgbJkJIpJWZyRqJ1x6G+gU=; b=QbwF6xuhuiui9MFkB5OzD+ywNfPbkPP1h0gtUbFrcI9aZ/W5+a0MxSaJZeXc0aBWqv aZas2UVolwEucnr0tN12PX/SF3bh8RUmTwdf2afkAK+bRkJsMovfc05vO3d6+EroDiAa FRH5ZBKZJHvOInkgh1q6TbdMjHwsRZtAJGXBWN5rUDlUcHIgWaSs9lRRRpgqMxy2iy+7 PXfOZmVAwDeGEob+KjAGzq+kv85Z3EM+nk5x2yEA0k2irFwYTOkeuEsaSvHeFHVouxyQ ewi8MN86vWn9DXSzHC9vvoFHKu5QFLjreWX4swX0KWh9GkbTE1NEdtq8MGHfYOcD98xQ 19WA== X-Gm-Message-State: AOPr4FULbbsjJ3bSp7tdd0+OgJY4AH8H7zip9wr43E8ddwHx3me6gGy0C/nUji+aUQon3N7bD1ef2R+WnNzIqw== X-Received: by 10.50.193.233 with SMTP id hr9mr26569076igc.40.1463059938693; Thu, 12 May 2016 06:32:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.77.66 with HTTP; Thu, 12 May 2016 06:31:59 -0700 (PDT) Date: Thu, 12 May 2016 21:31:59 +0800 Message-ID: To: internals@lists.php.net Content-Type: text/plain; charset=UTF-8 Subject: Request for RFC karma From: sskaje@gmail.com (sskaje) Hi, I'm writing to request for RFC karma. Here is what I am doing and why doing this. The pack/unpack's parameter 'd' and 'f' are machine order in PHP. The number 236.0 packed to 'd' is: 0000000000806d40. I was reversing a game save file, which uses 406D800000000000. Here is how I decode that in PHP. public function readDouble() { $data = substr($this->stream, $this->ptr, 8); $this->ptr += 8; $data = implode('', array_reverse(str_split($data, 1))); $int = unpack('d', $data); return (double) ($int[1]); } Since integers are allowed to pack/unpack in both little endian and big endian, I think double/float also need. In this PR, I choose: e: little endian double E: big endian double g: little endian float G: big endian float. BTW, these formats, 'e', 'E', 'g', and 'G' are not taken in Perl. I've created a PR: https://github.com/php/php-src/pull/1905 sskaje sskaje@gmail.com https://sskaje.me/