zoukankan      html  css  js  c++  java
  • How to convert a byte to its binary string representation

    How to convert a byte to its binary string representation

    For example, the bits in a byte B are 10000010, how can I assign the bits to the string strliterally, that is, str = "10000010".

    byte b1 = (byte) 129;
    String s1 = String.format("%8s", Integer.toBinaryString(b1 & 0xFF)).replace(' ', '0');
    System.out.println(s1); // 10000001
    
    byte b2 = (byte) 2;
    String s2 = String.format("%8s", Integer.toBinaryString(b2 & 0xFF)).replace(' ', '0');
    System.out.println(s2); // 00000010
    public class BitsSetCount
    {
        public static void main(String[] args) 
        {
            int send = 8549658;
    
            System.out.println( "[Input] Integer value: " + send + "
    " );
            BitsSetCount.countBits(  send );
        }
    
        private static void countBits(int i) 
        {
            System.out.println( "Integer.toBinaryString: " + Integer.toBinaryString(i) );
            System.out.println( "Integer.toHexString: " + Integer.toHexString(i) );
            System.out.println( "Integer.bitCount: "+ Integer.bitCount(i) );
    
            int d = i & 0xff000000;
            int c = i & 0xff0000;
            int b = i & 0xff00;
            int a = i & 0xff;
    
            System.out.println( "
    Byte 4th Hex Str: " + Integer.toHexString(d) );
            System.out.println( "Byte 3rd Hex Str: " + Integer.toHexString(c) );
            System.out.println( "Byte 2nd Hex Str: " + Integer.toHexString(b) );
            System.out.println( "Byte 1st Hex Str: " + Integer.toHexString(a) );
    
            int all = a+b+c+d;
            System.out.println( "
    (1st + 2nd + 3rd + 4th (int(s)) as Integer.toHexString: " + Integer.toHexString(all) );
    
            System.out.println("(1st + 2nd + 3rd + 4th (int(s)) ==  Integer.toHexString): " + 
                    Integer.toHexString(all).equals(Integer.toHexString(i) ) );
    
            System.out.println( "
    Individual bits for each byte in a 4 byte int:");
    
            /*
             * Because we are sending the MSF bytes to a method
             * which will work on a single byte and print some
             * bits we are generalising the MSF bytes
             * by making them all the same in terms of their position
             * purely for the purpose of printing or analysis
             */
            System.out.print( 
                        getBits( (byte) (d >> 24) ) + " " + 
                        getBits( (byte) (c >> 16) ) + " " + 
                        getBits( (byte) (b >> 8) ) + " " + 
                        getBits( (byte) (a >> 0) ) 
            );
    
    
        }
    
        private static String getBits( byte inByte )
        {
            // Go through each bit with a mask
            StringBuilder builder = new StringBuilder();
            for ( int j = 0; j < 8; j++ )
            {
                // Shift each bit by 1 starting at zero shift
                byte tmp =  (byte) ( inByte >> j );
    
                // Check byte with mask 00000001 for LSB
                int expect1 = tmp & 0x01; 
    
                builder.append(expect1);
            }
            return ( builder.reverse().toString() );
        }
    
    }
    public static String byteToString(byte b) {
        byte[] masks = { -128, 64, 32, 16, 8, 4, 2, 1 };
        StringBuilder builder = new StringBuilder();
        for (byte m : masks) {
            if ((b & m) == m) {
                builder.append('1');
            } else {
                builder.append('0');
            }
        }
        return builder.toString();
    }
    public static String getByteBinaryString(byte b) {
        StringBuilder sb = new StringBuilder();
        for (int i = 7; i >= 0; --i) {
            sb.append(b >>> i & 1);
        }
        return sb.toString();
    }
    String byteToBinaryString(byte b){
        StringBuilder binaryStringBuilder = new StringBuilder();
        for(int i = 0; i < 8; i++)
            binaryStringBuilder.append(((0x80 >>> i) & b) == 0? '0':'1');
        return binaryStringBuilder.toString();
    }
  • 相关阅读:
    毕业设计:文献参考(十九)
    毕业设计:文献参考(十八)
    毕业设计:文献参考(十七)
    毕业设计:文献参考(十六)
    毕业设计:文献参考(十五)
    毕业设计:文献参考(十四)
    毕业设计:文献参考(十三)
    毕业设计:文献参考(十二)
    毕业设计:文献参考(十一)
    MySQL8.0失踪记-连接时2003报错、服务列表不显示、服务启动后立即停止、重装卡在starting server
  • 原文地址:https://www.cnblogs.com/shangdawei/p/4601951.html
Copyright © 2011-2022 走看看