zoukankan      html  css  js  c++  java
  • 面试题:获取一个整数的16进制表现形式

    思路:

    15的二进制表现形式是0000 0000 0000 0000 0000 0000 0000 1111,所以一个数和15进行与运算就能得到后四位。

    一个int型变量在内存中占4个字节,也就是8个十六进制位,所以循环八次。

    查表法:

    如果数据出现了对应关系,而且对应关系的一方是有序的数字编号,并作为角标使用,这时就必须要想到数组的使用。

     0,1,2,3,4,5,6,7,8,9, A, B,  C, D,  E,  F
     0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

    代码:

    class IntToHex {
    	public static void main(String[] args) {
    		toHex(654);
    	}
    
    	public static void toHex(int num) {
    
    		if (num == 0) {
    			System.out.println("0");
    			return;
    		}
    		// 定义一个对应关系表。
    		char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
    		/*
    		 * 一会查表会查到比较的数据。 数据一多,就先存储起来,再进行操作。 所以定义一个数组作为临时容器。
    		 */
    		char[] arr = new char[8];
    		int pos = arr.length;
    		/*** while条件是nun!=0而不是pos,可以减少运算量。 ***/
    		while (num != 0) {
    			int temp = num & 15;
    			arr[--pos] = chs[temp];
    			num = num >>> 4;
    		}
    
    		System.out.println("pos=" + pos);
    		for (int x = pos; x < arr.length; x++) {
    			System.out.print(arr[x]);
    		}
    	}
    }
    

      

      

  • 相关阅读:
    关于applet
    Hello.java
    filter用户授权的例子
    logfilter
    Java EE课程设计——企业人力资源管理系统
    条件查询、SQL、JPQL、HQL比较
    web service和ejb的区别
    RPC
    hashcode()和equals()的区别
    关于JSON
  • 原文地址:https://www.cnblogs.com/kkkky/p/7756126.html
Copyright © 2011-2022 走看看