zoukankan      html  css  js  c++  java
  • java int类型十进制与十六进制相互转化

    import java.util.Scanner;
    
    public class Demo {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int x = sc.nextInt();
    		Demo d = new Demo();
    		// 十六进制转十进制
    		byte[] result = d.getIntBit(x);
    		for(int i = 0; i < 32; i++)
    			System.out.print(result[i]);
    		System.out.println();
    		String s = d.toHex(result);
    		System.out.println(s);
    		System.out.println(d.toDec(s));
    	}
    
    	/** 
    	* 将byte转换为一个长度为32的byte数组,数组每个值代表bit
    	*/  
    	public byte[] getIntBit(int b) {  
            byte[] array = new byte[32];  
            for (int i = 31; i >= 0; i--) {  
                array[i] = (byte)(b & 1);  
                b = (byte) (b >> 1);  
            }  
            return array;  
        }  
    	/**
    	 * 转16进制
    	 */
    	public String toHex(byte[] b) {
    		String s = "";
    		//每四位处理一次
    		for(int i = 0; i < 32; i += 4) {
    			int temp = (b[i] * 8  + b[i+1] * 4 + b[i+2] * 2 + b[i+3]);
    			
    			if(temp > 9) {
                      /* switch(temp) { case 10:s += 'A';break; case 11:s += 'B';break; case 12:s += 'C';break; case 13:s += 'D';break; case 14:s += 'E';break; case 15:s += 'F';break; }
                      */
                      //=>A:65 -> 10 + 55 = 65
                      temp += 55;
                      s += (char)temp;
    

      

                        

      		    }else {
    				s += temp;
    			}
    		}
    		return s;
    	}
    	/**
    	 * 转十进制
    	 */
    	public int toDec(String s) {
    		int result = 0;
    		for(int i = 0; i < 8; i++) {
    			int temp = s.charAt(i);
    			//9的ascii为57
    			if(temp > 57) {
    				temp -= 55; //'A'为65对应10,故减去55
    			}else {
    				temp -= 48;
    			}
    			result += temp * getProduct(7 - i);
    		}
    		return result;
    	}
    	/**
    	 * 计算16的n次方 
    	 */
    	public int getProduct(int n) {
    		int result = 1;
    		for(int i = 0; i < n; i++) {
    			result *= 16;
    		}
    		return result;
    	}
    }
    

      参考:java中bit的常用操作技巧 https://blog.csdn.net/wodeyuer125/article/details/45100319

  • 相关阅读:
    linux每天一小步---grep命令详解
    linux每天一小步---xargs命令详解
    linux每天一小步---find命令详解
    linux每天一小步---tail命令详解
    linux每天一小步---head命令详解
    linux每天一小步---alias命令详解
    linux每天一小步---cat命令详解
    linux每天一小步---mv命令详解
    第十四周总结
    第十三周总结
  • 原文地址:https://www.cnblogs.com/githubMYL/p/8626845.html
Copyright © 2011-2022 走看看