Java无符号整数转化二进制、十六进制字符串

转载 2012年03月28日 22:35:34
package canghailan.util;
02  
03 /**
04  * @author canghailan 2012-03-02 21:31
05  */
06 public class Bytes {
07     private static final char[] DIGITS = {
08             '0''1''2''3''4''5''6''7''8''9''a''b''c','d''e''f'
09     };
10  
11     public static String toBinaryString(byte b) {
12         int u = toUnsigned(b);
13         return new String(new char[]{
14                 DIGITS[(u >>> 7) & 0x1],
15                 DIGITS[(u >>> 6) & 0x1],
16                 DIGITS[(u >>> 5) & 0x1],
17                 DIGITS[(u >>> 4) & 0x1],
18                 DIGITS[(u >>> 3) & 0x1],
19                 DIGITS[(u >>> 2) & 0x1],
20                 DIGITS[(u >>> 1) & 0x1],
21                 DIGITS[u & 0x1]
22         });
23     }
24  
25     public static String toBinaryString(byte... bytes) {
26         char[] buffer = new char[bytes.length * 8];
27         for (int i = 0, j = 0; i < bytes.length; ++i) {
28             int u = toUnsigned(bytes[i]);
29             buffer[j++] = DIGITS[(u >>> 7) & 0x1];
30             buffer[j++] = DIGITS[(u >>> 6) & 0x1];
31             buffer[j++] = DIGITS[(u >>> 5) & 0x1];
32             buffer[j++] = DIGITS[(u >>> 4) & 0x1];
33             buffer[j++] = DIGITS[(u >>> 3) & 0x1];
34             buffer[j++] = DIGITS[(u >>> 2) & 0x1];
35             buffer[j++] = DIGITS[(u >>> 1) & 0x1];
36             buffer[j++] = DIGITS[u & 0x1];
37         }
38         return new String(buffer);
39     }
40  
41     public static String toHexString(byte b) {
42         int u = toUnsigned(b);
43         return new String(new char[]{
44                 DIGITS[u >>> 4],
45                 DIGITS[u & 0xf]
46         });
47     }
48  
49     public static String toHexString(byte... bytes) {
50         char[] buffer = new char[bytes.length * 2];
51         for (int i = 0, j = 0; i < bytes.length; ++i) {
52             int u = toUnsigned(bytes[i]);
53             buffer[j++] = DIGITS[u >>> 4];
54             buffer[j++] = DIGITS[u & 0xf];
55         }
56         return new String(buffer);
57     }
58  
59     private static int toUnsigned(byte b) {
60         return b < 0 ? b + 256 : b;
61     }
62 }


1 public static void main(String[] args) throws Exception {
2     byte[] bytes = ByteBuffer.allocate(8).putLong(Long.MAX_VALUE).array();
3     System.out.println(Bytes.toHexString(bytes));
4 }

Java基础之数组篇

【参考原文】http://www.cnblogs.com/chenssy/p/3463719.html概述是什么 通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸是不可变...

Java中的数组和成员变量的默认值

数组和成员变量的默认值
  • y_guan
  • y_guan
  • 2017年03月05日 15:50
  • 790

判断32位无符号整数二进制中1的个数

1、比较简单和容易理解的方法就是逐位比较法: #include using namespace std; int findone(unsigned int n) { f...
  • lingzhm
  • lingzhm
  • 2015年04月07日 15:07
  • 520

统计无符号整数二进制中1的个数(Hamming weight)

1.问题来源之所以来记录这个问题的解法,是因为在在线编程中经常遇到,比如编程之美和京东的校招笔试以及很多其他公司都累此不疲的出这个考题。看似简单的问题,背后却隐藏着很多精妙的解法。查找网上资料,才知道...

编程实现以二进制形式系那是无符号整数

%u 表示无符号 按位与运算符

快速求一个32位无符号整数二进制中为1的个数

一个数5,二进制表示法,为101,则有2个1,如何快速求出一个32位无符号整数中1的个数,如果要我们来做,我们可能会进行一个32次的循环,从1至32,依次测试相应的位;这个算法不是最优的。以下算法效率...

求32位无符号整数中比特为1的二进制位数

测试环境:       1、 Intel(R) core(TM) I5-2410M CPU@2.30GHz 2.30GHz 处理器;       2、操作系统:Win7;       3、开发环...

深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断

开篇请各位猿友允许LZ啰嗦几句,最近一直在写计算机系统原理这系列文章,也已经下定决心要把这本书的内容写完。主要目的其实是为了巩固LZ的理解,另外也想把这些内容分享给猿友们,毕竟LZ觉得这些内容对程序猿...

字符串与整数、浮点数、无符号整数之间的转换常用函数

atof(将字符串转换成浮点型数) 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过前...

字符串与整数、浮点数、无符号整数…

字符串与整数、浮点数、无符号整数之间的转换常用函数 atof(将字符串转换成浮点型数) 表头文件 #include ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java无符号整数转化二进制、十六进制字符串
举报原因:
原因补充:

(最多只允许输入30个字)