RFR: 8170769 Provide a simple hexdump facility for binary data

Vincent Ryan vincent.x.ryan at oracle.com
Fri Dec 7 19:51:25 UTC 2018


Even shorter. I’ll add that instead.
Thanks.

> On 7 Dec 2018, at 19:04, Roger Riggs <Roger.Riggs at oracle.com> wrote:
> 
> Hi,
> 
> I don't think this is performance sensitive and less code is better.
> 
> Use java.lang.Character.digit(ch, 16) to convert the char to an int.
> 
> Roger
> 
> On 12/07/2018 01:49 PM, Kasper Nielsen wrote:
>> Hi,
>> 
>> I don't know if performance is an issue. But if it is, I think it world
>> make sense to use a precompute array. And replace
>> 
>> private static int hexToBinary(char ch) {
>>     if ('0' <= ch && ch <= '9') {
>>         return ch - '0';
>>     }
>>     if ('A' <= ch && ch <= 'F') {
>>         return ch - 'A' + 10;
>>     }
>>     if ('a' <= ch && ch <= 'f') {
>>         return ch - 'a' + 10;
>>     }
>>     return -1;
>> }
>> 
>> with
>> 
>> private static int hexToBinary(char ch) {
>>     return ch <= 'f' ? staticPrecomputedArray[ch] : -1;
>> }
>> 
>> where int[] staticPrecomputedArray is computed in a static initializer
>> block.
>> 
>> /Kasper
>> 
>> On Fri, 23 Nov 2018 at 14:51, Vincent Ryan <vincent.x.ryan at oracle.com>
>> wrote:
>> 
>>> Hello,
>>> 
>>> Please review this proposal for a new API to conveniently generate and
>>> display binary data using hexadecimal string representation.
>>> It supports both bulk and stream operations and it can also generate the
>>> well-known hexdump format [1].
>>> 
>>> This latest revision addresses review comments provided earlier.
>>> These include adding methods to support for data supplied in a
>>> ByteBuffer, exposing the default formatter implementation as a public
>>> static and dropping the superfluous 'Hex' term from several method names.
>>> 
>>> Thanks
>>> 
>>> 
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8170769
>>> API:
>>> 
>>> http://cr.openjdk.java.net/~vinnie/8170769/javadoc.06/api/java.base/java/util/Hex.html
>>> Webrev: http://cr.openjdk.java.net/~vinnie/8170769/webrev.06/
>>> 
>>> 
>>> ____
>>> [1] https://docs.oracle.com/cd/E88353_01/html/E37839/hexdump-1.html
>>> 
> 



More information about the core-libs-dev mailing list