JAva進法まとめ

3507 ワード

	/**
	 *        
	 * @return
	 */
	public static String getCurrenttime(){
		Date date = null;
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String fDate = sdf.format(new Date());
		return fDate;
	}
	
	
	
	/**
	 *     ,                 ,    
	 * @param s
	 * @param pos
	 * @return
	 */
	public static String reversal(String s,int pos){
		String result="";
		int n=s.length();
		for(int i=0;i<pos-n;i++){
			s="0"+s;
		}
		int m=pos/2;
		result=s.substring(m, m*2)+s.substring(0, m);
		return result;
	}
	
	
	 /**
	  * 16              
	  * 
	  * @param hexString
	  *            16        
	  * @return         
	  **/
	 public static byte[] toByteArray(String hexString) {
		  if (hexString.isEmpty())
			  throw new IllegalArgumentException("this hexString must not be empty");
		  hexString = hexString.toLowerCase();
		  final byte[] byteArray = new byte[hexString.length() / 2];
		  int k = 0;
		  for (int i = 0; i < byteArray.length; i++) {//   16  ,      4 ,         16     ,    
			   byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff);
			   byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff);
			   byteArray[i] = (byte) (high << 4 | low);
			   k += 2;
		  }
		  return byteArray;
	 }
	 
	 
	 /**
		 *      crc16   
		 * @param bufData
		 * @param buflen
		 * @return
		 */
		public static String get_crc16 (byte[] bufData, int buflen)
			{
				int ret = 0;
				int CRC = 0x0000ffff;
				int POLYNOMIAL = 0x0000a001;
				int i, j;
				for (i = 0; i < buflen; i++)
				{
					CRC ^= ((int)bufData[i] & 0x000000ff);
					for (j = 0; j < 8; j++)
					{
						if ((CRC & 0x00000001) != 0)
						{
							CRC >>= 1;
							CRC ^= POLYNOMIAL;
						}
						else
						{
							CRC >>= 1;
						}
					}
					//System.out.println(Integer.toHexString(CRC));
				}
				return Integer.toHexString(CRC);
			}
		
		
		/**
		 * 16        2     
		 * @param hexString
		 * @return
		 */
		public static String hexString2binaryString(String hexString) {
			if (hexString == null || hexString.length() % 2 != 0)
				return null;
			String bString = "", tmp;
			for (int i = 0; i < hexString.length(); i++) {
				tmp = "0000"
						+ Integer.toBinaryString(Integer.parseInt(hexString
								.substring(i, i + 1), 16));
				bString += tmp.substring(tmp.length() - 4);
			}
			return bString;
		}
		
		
		/**
		 *      16     
		 * @param b
		 * @return
		 */
		public static String Bytes2HexString(byte[] b) {
			String ret = "";
			for (int i = 0; i < b.length; i++) {
				String hex = Integer.toHexString(b[i] & 0xFF);
				if (hex.length() == 1) {
					hex = '0' + hex;
				}
				ret += hex.toUpperCase();
			}
			return ret;
		}

 
プロジェクトで使用されるいくつかの常用進数変換は、皆さんに役に立つことを望んでいます.