亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問,為何下面的判斷語句,會讓雙位數也加零呢?本來想只對單位數(<=15)的前面補零。

	public?static?void?printHexByByteArray(String?fileName)?throws?IOException{
		FileInputStream?in=new?FileInputStream(fileName);
		byte[]?buf=new?byte[8*1024];
		int?bytes=0;
		int?j=1;
		while((bytes=in.read(buf,?0,?buf.length))!=-1){
			for(int?i=0;i<bytes;i++){
				//為何下面的判斷,會讓雙位數也加零
				if(buf[i]<=0xf){
					System.out.print("0");
				}
				System.out.print(Integer.toHexString(buf[i]?&?0xff)+"?");
				if(j++%10==0){
					System.out.println();
				}
			}
		}
		in.close();
	}
}


正在回答

1 回答

0xff 是16位的 你這相當于是對 8位能表示的數據做了8位擴展,即buf[i]如果是00000001 & 0xff =0x01 ?自然就多了一個0

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問,為何下面的判斷語句,會讓雙位數也加零呢?本來想只對單位數(<=15)的前面補零。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號