第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

感覺沒什么錯,但是期望的結(jié)果是8143,而運行結(jié)果為7887

感覺沒什么錯,但是期望的結(jié)果是8143,而運行結(jié)果為7887

慕粉13727861792 2017-01-29 20:33:25
package java中的數(shù)據(jù)類型;//整形轉(zhuǎn)化成字節(jié)型public class Int_to_Byte {//int轉(zhuǎn)化為字節(jié)數(shù)組?public static byte change(int b){??byte[] arr=new byte[4]; ??arr[0]=(byte)((b>>0*8));??return arr[0];?}?public static byte[] change2(int a){??byte[] arr1=new byte[4];??for(int i=0;i<arr1.length;i++){???arr1[i]=(byte)((a>>i*8));??}??return arr1;?}?//byte型轉(zhuǎn)化成int型?public static int[] cheng3(byte[]arr){??int arr2[]=new int[4];??for(int i=0;i<arr.length;i++){???arr2[i]=(int)(arr[i]<<i*8);??}??return arr2;?}?//輸出?public static void main(String arges[]){?byte arr=Int_to_Byte.change(8143);??System.out.println(arr);??byte arr1[]=Int_to_Byte.change2(8143);??System.out.println(arr1[0]+" "+arr1[1]+" "+arr1[2]+" "+arr1[3]);??int arr2[]=Int_to_Byte.cheng3(arr1);??System.out.println(arr2[0]+arr2[1]+arr2[2]+arr2[3]);?}}
查看完整描述

1 回答

?
按照自己的節(jié)奏前行

TA貢獻(xiàn)90條經(jīng)驗 獲得超70個贊

//閑的無聊,幫你看看你哪里錯了,我給你做了注釋
public?class?Int_to_Byte?{
//int轉(zhuǎn)化為字節(jié)數(shù)組
?public?static?byte?change(int?b){??//這個玩意寫的亂七八糟,沒用
??byte[]?arr=new?byte[4];?
??arr[0]=(byte)((b>>0*8));?//這里你相當(dāng)于沒有移位,把一個int類型進(jìn)行強(qiáng)轉(zhuǎn),結(jié)果失真,默認(rèn)保留最后8位,
????????????????????????????//但是,小朋友,byte是一個8位的,且?guī)Х?這個你得到出來的范圍肯定在-127到128之間
??return?arr[0];???????????//沒用,因為并不是你寫個4位的數(shù)字,每個數(shù)字都占一個字節(jié),想想吧,孩子,前面要補0的
?}
?public?static?byte[]?change2(int?a){
??byte[]?arr1=new?byte[4];
??for(int?i=0;i<arr1.length;i++){
???arr1[i]=(byte)((a>>i*8));???//向右移動一位相當(dāng)于除以2.嗯,你可以想想,你在干啥,依次除以2的8次方的
???????????????????????????????//8的次方的..,沒錯,你是移動了1個字節(jié),但是不代表你數(shù)字也移動了一位
???????????????????????????????//還有,轉(zhuǎn)化失真
??}
??return?arr1;
?}
?//byte型轉(zhuǎn)化成int型
?public?static?int[]?cheng3(byte[]arr){??//你以為這是字符串嗎?拼一拼就出來了...哈哈哈哈,進(jìn)制轉(zhuǎn)化多看看
??int?arr2[]=new?int[4];
??for(int?i=0;i<arr.length;i++){
???arr2[i]=(int)(arr[i]<<i*8);
??}
??return?arr2;
?}
?//輸出
?public?static?void?main(String?arges[]){???//這里就沒啥說的了,你理解的誤區(qū)是一個字節(jié)代表數(shù)字的某個位,
????????????????????????????????????????????//嗯,這樣說吧,你想每次移動一個字節(jié),那就需要2的八次方進(jìn)制來做,
????????????????????????????????????????????//這還只是無符號的,這樣的話,你得到的哪一位就是當(dāng)前位數(shù)的數(shù)字,
????????????????????????????????????????????//十進(jìn)制嗎,你移動一個字節(jié)是想發(fā)泄自己的不滿嗎?
?byte?arr=Int_to_Byte.change(8143);
??System.out.println(arr);
??byte?arr1[]=Int_to_Byte.change2(8143);
??System.out.println(arr1[0]+"?"+arr1[1]+"?"+arr1[2]+"?"+arr1[3]);
??int?arr2[]=Int_to_Byte.cheng3(arr1);
??System.out.println(arr2[0]+arr2[1]+arr2[2]+arr2[3]);
?}
}


查看完整回答
1 反對 回復(fù) 2017-01-30
  • 1 回答
  • 0 關(guān)注
  • 1094 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號