Forpersonaluseonlyinstudyandresearch;mercialuse蒈package;莆芁import;lassMainEntry{艿虿publicstaticvoidmain(String[]args){芄//初始化16进制数据键值对莄HashMap<Integer,Character>hmI2C=newHashMap<Integer,Character>();蚀HashMap<Character,Integer>hmC2I=newHashMap<Character,Integer>();膆for(inti=0;i<10;i++){(i,(char)('0'+i));((char)('0'+i),i);肁}袈for(inti=0;i<6;i++){(10+i,(char)('A'+i));((char)('A'+i),10+i);蒁}芆//调用功能接口袄hexToDecimal("ECABFFFED1234D7897685DC",hmI2C,hmC2I);蚄}袂羈/**羇*实现功能函数蚄*/罿privatestaticvoidhexToDecimal(StringhexString,螀HashMap<Integer,Character>hmI2C,蚆HashMap<Character,Integer>hmC2I){螃Stringresult="0";//初始化结果值蒀for(inti=0;i<()-1;i++){膈if(i==0){蒅result=additional((((i))).toString(),袃"0",hmI2C,hmC2I);袁result=decimalStrMultiple16(result,hmI2C,hmC2I);袀}else{芄result=additional(result,羃(((i))).toString(),节hmI2C,hmC2I);莈result=decimalStrMultiple16(result,hmI2C,hmC2I);芇}肃}荿result=additional(result,肀(((()-1))).toString(),肆hmI2C,hmC2I);膃"result="+result);螀}薇螄/**芃*乘法:膀*被乘数艿*/袇privatestaticStringdecimalStrMultiple16(StringdecimalString,芃HashMap<Integer,Character>hmI2C,薁HashMap<Character,Integer>hmC2I){蚇StringBuffersb=newStringBuffer();薆carryAndUnitcu=null;莃for(inti=()-1;i>=0;i--){羂if(i==()-1){荿cu=multipleOne((i),莅0,hmI2C,hmC2I);蒂}else{聿cu=multipleOne((i),,hmI2C,hmC2I);膄}(0,);蒀}蕿if(>0){(0,);蚂}();肇}羆螂/**节*一位乘法:蝿*被乘数螅*进位袂*直接乘了16,是因为16进制转换为10进制数蚃*/arryAndUnitmultipleOne(chara,intc,袂HashMap<Integer,Character>hmI2C,衿HashMap<Character,Integer>hmC2I){羈intmultiplicand=(a);薆intmultiplier=16;羂intcarry=c;芀intresult=multiplicand*multiplier+carry;蚀carryAndUnitcu=newcarryAndUnit(result/10,(result%10));肂returncu;蚁}肈肄/**膁*加法:肂*被加数螀*加数肇*/芁腿privatestaticStringadditional(StringdecimalResult,Stringaddend,芈HashMap<I
(16进制数据转换成10进制)HexToDecimal 来自淘豆网m.daumloan.com转载请标明出处.