commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henri Yandell (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (LANG-341) Add number to byte array methods
Date Sat, 26 Apr 2014 04:04:20 GMT

     [ https://issues.apache.org/jira/browse/LANG-341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Henri Yandell updated LANG-341:
-------------------------------

    Fix Version/s:     (was: 3.x)
                   Discussion

> Add number to byte array methods
> --------------------------------
>
>                 Key: LANG-341
>                 URL: https://issues.apache.org/jira/browse/LANG-341
>             Project: Commons Lang
>          Issue Type: New Feature
>          Components: lang.*
>            Reporter: Lilianne E. Blaze
>            Assignee: Duncan Jones
>             Fix For: Discussion
>
>         Attachments: 341-v1-src.patch, 341-v1-test.patch, LANG-341-2.patch, LANG-341.patch
>
>
> Hello,
> I need a set of methods to convert Long to or from a byte[] array, as if
> writing / reading from Data(Input/Output)Stream(
> ByteArray(Input/Output)Stream ).
> First, doing it with Streams seems a bit wasteful, second, it seems a
> pretty general use. Would it be possible to add something like that to,
> for example,
> org.apache.commons.lang.math.NumberUtils?
> Example code:
> {code:java}
> static public long toLong(byte[] b)
>   {
>     return toLong(b, 0);
>   }
>   
>   static public long toLong(byte[] b, int offset)
>   {
>     return (((long)b[offset] << 56) +
>         ((long)(b[offset + 1] & 255) << 48) +
>         ((long)(b[offset + 2] & 255) << 40) +
>         ((long)(b[offset + 3] & 255) << 32) +
>         ((long)(b[offset + 4] & 255) << 24) +
>         ((b[offset + 5] & 255) << 16) +
>         ((b[offset + 6] & 255) <<  8) +
>         ((b[offset + 7] & 255) <<  0));
>   }
>   
>   static public byte[] longToByteArray(long l)
>   {
>     byte b[] = new byte[8];
>     longToByteArray(l, b, 0);
>     return b;
>   }
>   
>   static public void longToByteArray(long l, byte b[], int offset)
>   {
>     b[offset] = (byte)(l >>> 56);
>     b[offset + 1] = (byte)(l >>> 48);
>     b[offset + 2] = (byte)(l >>> 40);
>     b[offset + 3] = (byte)(l >>> 32);
>     b[offset + 4] = (byte)(l >>> 24);
>     b[offset + 5] = (byte)(l >>> 16);
>     b[offset + 6] = (byte)(l >>>  8);
>     b[offset + 7] = (byte)(l >>>  0);
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message