新聞中心
創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
本篇文章為大家展示了java如果實(shí)現(xiàn)轉(zhuǎn)換base64編碼,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
1.base64編碼轉(zhuǎn)換
所謂base64編碼,即按照規(guī)則把字符轉(zhuǎn)化為"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"這個(gè)字符集中的字符。具體規(guī)則如下:
a.把每3個(gè)字節(jié)為一組,共24bit。每6bit一小組,每組前面加00,變?yōu)?2bit。這樣3個(gè)字節(jié)被擴(kuò)展成了4個(gè)節(jié),按照上面字符集編碼。
b.如果字節(jié)數(shù)不足3:
1)當(dāng)字節(jié)數(shù)為2時(shí),共16bit。每6bit一小組,最后一組即只有4bit,則不止前面加00以外,后面也要補(bǔ)00,按照上面字符集編碼,末尾補(bǔ)=。
2)當(dāng)字節(jié)數(shù)為1時(shí),共8bit。每6bit一小組,最后一組即只有2bit,則不止前面加00以外,后面也要補(bǔ)0000,按照上面字符集編碼,末尾補(bǔ)==.。
2.計(jì)算機(jī)如何表示負(fù)數(shù)。(以byte基本類型為例)
在java中一個(gè)byte為一個(gè)字節(jié)共8bit,可表示范圍00000000——11111111(0~255)。在計(jì)算機(jī)中把0——01111111表示為0~127,把10000000——11111111表示為-128 ~-1。那么這樣如-127+127,即01111111+10000001=100000000,相加等于模(256),即互為補(bǔ)碼。
3.java位運(yùn)算。
在java中(加,減,乘,除,右移,左移,無符號右移,位與,位或,位異或)操作,均會是首先將byte,short,char轉(zhuǎn)化為int,再進(jìn)行相應(yīng)運(yùn)算。舉例:
public class Test { public static void main(String[] args) { byte s1 = (byte) 0xFF;// -1 byte s2 = (byte) 0x80;// -128 System.out.println((byte)(s1+s2));//s1+s2=-129,強(qiáng)制轉(zhuǎn)化為byte,此時(shí)溢出,java處理溢出(+-)256*n,256為byte類型的模,則結(jié)果為-129+256=127; byte s5 = -28; System.out.println(s5 << 2);// 結(jié)果為-112, 先轉(zhuǎn)換為int類型,右邊補(bǔ)0,高位舍棄 System.out.println(s5>>2);//結(jié)果為-7,先轉(zhuǎn)換為int類型,高位補(bǔ)符號位,低位舍棄 System.out.println(s5>>>2);//結(jié)果為1073741817,先轉(zhuǎn)換為int類型,高位補(bǔ)0,低位舍棄 System.out.println((s5&0xFC)>>2); } }
本文題目:java如果實(shí)現(xiàn)轉(zhuǎn)換base64編碼-創(chuàng)新互聯(lián)
文章地址:http://www.ef60e0e.cn/article/dpdeei.html