C# 进制之间的转换.docx

上传人:b****4 文档编号:4458197 上传时间:2022-12-01 格式:DOCX 页数:20 大小:18.57KB
下载 相关 举报
C# 进制之间的转换.docx_第1页
第1页 / 共20页
C# 进制之间的转换.docx_第2页
第2页 / 共20页
C# 进制之间的转换.docx_第3页
第3页 / 共20页
C# 进制之间的转换.docx_第4页
第4页 / 共20页
C# 进制之间的转换.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C# 进制之间的转换.docx

《C# 进制之间的转换.docx》由会员分享,可在线阅读,更多相关《C# 进制之间的转换.docx(20页珍藏版)》请在冰豆网上搜索。

C# 进制之间的转换.docx

C#进制之间的转换

C#进制之间的转换

1///<summary>

2///十进制转换为二进制

3///</summary>

4///<paramname="x"></param>

5///<returns></returns>

6publicstaticstringDecToBin(stringx)

7{

8stringz=null;

9intX=Convert.ToInt32(x);

10inti=0;

11longa,b=0;

12while(X>0)

13{

14a=X%2;

15X=X/2;

16b=b+a*Pow(10,i);

17i++;

18}

19z=Convert.ToString(b);

20returnz;

21}

22

23///<summary>

24///16进制转ASCII码

25///</summary>

26///<paramname="hexString"></param>

27///<returns></returns>

28publicstaticstringHexToAscii(stringhexString)

29{

30StringBuildersb=newStringBuilder();

31for(inti=0;i<=hexString.Length-2;i+=2)

32{

33sb.Append(

34Convert.ToString(

35Convert.ToChar(Int32.Parse(hexString.Substring(i,2),

36System.Globalization.NumberStyles.HexNumber))));

37}

38returnsb.ToString();

39}

40

41///<summary>

42///十进制转换为八进制

43///</summary>

44///<paramname="x"></param>

45///<returns></returns>

46publicstaticstringDecToOtc(stringx)

47{

48stringz=null;

49intX=Convert.ToInt32(x);

50inti=0;

51longa,b=0;

52while(X>0)

53{

54a=X%8;

55X=X/8;

56b=b+a*Pow(10,i);

57i++;

58}

59z=Convert.ToString(b);

60returnz;

61}

62

63///<summary>

64///十进制转换为十六进制

65///</summary>

66///<paramname="x"></param>

67///<returns></returns>

68publicstaticstringDecToHex(stringx)

69{

70if(string.IsNullOrEmpty(x))

71{

72return"0";

73}

74stringz=null;

75intX=Convert.ToInt32(x);

76Stacka=newStack();

77inti=0;

78while(X>0)

79{

80a.Push(Convert.ToString(X%16));

81X=X/16;

82i++;

83}

84while(a.Count!

=0)

85z+=ToHex(Convert.ToString(a.Pop()));

86if(string.IsNullOrEmpty(z))

87{

88z="0";

89}

90returnz;

91}

92

93///<summary>

94///二进制转换为十进制

95///</summary>

96///<paramname="x"></param>

97///<returns></returns>

98publicstaticstringBinToDec(stringx)

99{

100stringz=null;

101intX=Convert.ToInt32(x);

102inti=0;

103longa,b=0;

104while(X>0)

105{

106a=X%10;

107X=X/10;

108b=b+a*Pow(2,i);

109i++;

110}

111z=Convert.ToString(b);

112returnz;

113}

114

115///<summary>

116///二进制转换为十进制,定长转换

117///</summary>

118///<paramname="x"></param>

119///<paramname="iLength"></param>

120///<returns></returns>

121publicstaticstringBinToDec(stringx,shortiLength)

122{

123StringBuildersb=newStringBuilder();

124intiCount=0;

125

126iCount=x.Length/iLength;

127

128if(x.Length%iLength>0)

129{

130iCount+=1;

131}

132

133intX=0;

134

135for(inti=0;i<iCount;i++)

136{

137if((i+1)*iLength>x.Length)

138{

139X=Convert.ToInt32(x.Substring(i*iLength,(x.Length-iLength)));

140}

141else

142{

143X=Convert.ToInt32(x.Substring(i*iLength,iLength));

144}

145intj=0;

146longa,b=0;

147while(X>0)

148{

149a=X%10;

150X=X/10;

151b=b+a*Pow(2,j);

152j++;

153}

154sb.AppendFormat("{0:

D2}",b);

155}

156returnsb.ToString();

157}

158

159///<summary>

160///二进制转换为十六进制,定长转换

161///</summary>

162///<paramname="x"></param>

163///<paramname="iLength"></param>

164///<returns></returns>

165publicstaticstringBinToHex(stringx,shortiLength)

166{

167StringBuildersb=newStringBuilder();

168intiCount=0;

169

170iCount=x.Length/iLength;

171

172if(x.Length%iLength>0)

173{

174iCount+=1;

175}

176

177intX=0;

178

179for(inti=0;i<iCount;i++)

180{

181if((i+1)*iLength>x.Length)

182{

183X=Convert.ToInt32(x.Substring(i*iLength,(x.Length-iLength)));

184}

185else

186{

187X=Convert.ToInt32(x.Substring(i*iLength,iLength));

188}

189intj=0;

190longa,b=0;

191while(X>0)

192{

193a=X%10;

194X=X/10;

195b=b+a*Pow(2,j);

196j++;

197}

198//前补0

199sb.Append(DecToHex(b.ToString()));

200}

201returnsb.ToString();

202}

203

204///<summary>

205///八进制转换为十进制

206///</summary>

207///<paramname="x"></param>

208///<returns></returns>

209publicstaticstringOctToDec(stringx)

210{

211stringz=null;

212intX=Convert.ToInt32(x);

213inti=0;

214longa,b=0;

215while(X>0)

216{

217a=X%10;

218X=X/10;

219b=b+a*Pow(8,i);

220i++;

221}

222z=Convert.ToString(b);

223returnz;

224}

225

226

227///<summary>

228///十六进制转换为十进制

229///</summary>

230///<paramname="x"></param>

231///<returns></returns>

232publicstaticstringHexToDec(stringx)

233{

234if(string.IsNullOrEmpty(x))

235{

236return"0";

237}

238stringz=null;

239Stacka=newStack();

240inti=0,j=0,l=x.Length;

241longTong=0;

242while(i<l)

243{

244a.Push(ToDec(Convert.ToString(x[i])));

245i++;

246}

247while(a.Count!

=0)

248{

249Tong=Tong+Convert.ToInt64(a.Pop())*Pow(16,j);

250j++;

251}

252z=Convert.ToString(Tong);

253returnz;

254}

255

256#endregion//Helperfunctions

257

258///<summary>

259///

260///</summary>

261///<paramname="x"></param>

262///<paramname="y"></param>

263///<returns></returns>

264privatestaticlongPow(longx,longy)

265{

266inti=1;

267longX=x;

268if(y==0)

269return1;

270while(i<y)

271{

272x=x*X;

273i++;

274}

275returnx;

276}

277

278///<summary>

279///

280///</summary>

281///<paramname="x"></param>

282///<returns></returns>

283privatestaticstringToDec(stringx)

284{

285switch(x)

286{

287case"A":

288return"10";

289case"B":

290return"11";

291case"C":

292return"12";

293case"D":

294return"13";

295case"E":

296return"14";

297case"F":

298return"15";

299default:

300returnx;

301}

302}

303

304///<summary>

305///

306///</summary>

307///<paramname="x"></param>

308///<returns></returns>

309privatestaticstringToHex(stringx)

310{

311switch(x)

312{

313case"10":

314return"A";

315case"11":

316return"B";

317case"12":

318return"C";

319case"13":

320return"D";

321case"14":

322return"E";

323case"15":

324return"F";

325default:

326returnx;

327}

328}

329

330///<summary>

331///将16进制BYTE数组转换成16进制字符串

332///</summary>

333///<paramname="bytes"></param>

334///<returns></returns>

335publicstaticstringToHexString(byte[]bytes)//0xae00cf=>"AE00CF"

336{

337stringhexString=string.Empty;

338if(bytes!

=null)

339{

340StringBuilderstrB=newStringBuilder();

341

342for(inti=0;i<bytes.Length;i++)

343{

344strB.Append(bytes[i].ToString("X2"));

345}

346hexString=strB.ToString();

347}

348returnhexString;

349}

 

1///<summary>

2///

3///</summary>

4///<paramname="bytes"></param>

5///<paramname="iLength"></param>

6///<returns></returns>

7publicstaticstringToHexString(byte[]bytes,intiLength)//0xae00cf=>"AE00CF"

8{

9stringhexString=string.Empty;

10if(bytes!

=null)

11{

12StringBuilderstrB=newStringBuilder();

13

14if(bytes.Length<iLength)

15{

16iLength=bytes.Length;

17}

18

19for(inti=0;i<iLength;i++)

20{

21strB.Append(bytes[i].ToString("X2"));

22}

23hexString=strB.ToString();

24}

25returnhexString;

26}

27

28///<summary>

29///将byte数组转换为16进制字符串

30///</summary>

31///<paramname="bytes">要转换的数组</param>

32///<paramname="iStart">数组下标</param>

33///<paramname="iLength">长度</param>

34///<returns></returns>

35publicstaticstringToHexString(byte[]bytes,intiStart,intiLength)//0xae00cf=>"AE00CF"

36{

37stringhexString=string.Empty;

38if(bytes!

=null)

39{

40StringBuilderstrB=newStringBuilder();

41

42//缓冲区长度问题,需清空缓冲区

43if(bytes.Length<(iLength+iStart))

44{

45iLength=bytes.Length;

46}

47

48for(inti=iStart;i<iLength+iStart;i++)

49{

50strB.Append(bytes[i].ToString("X2"));

51}

52hexString=strB.ToString();

53}

54returnhexString;

55}

56

57///<summary>

58///

59///</summary>

60///<paramname="hexString"></param>

61///<paramname="discarded"></param>

62///<returns></returns>

63publicstaticbyte[]GetBytes(stringhexString,outintdiscarded)

64{

65discarded=0;

66stringnewString="";

67charc;

68//removeallnoneA-F,0-9,characters

69for(inti=0;i<hexString.Length;i++)

70{

71c=hexString[i];

72if(Uri.IsHexDigit(c))

73newString+=c;

74else

75discarded++;

76}

77//ifoddnumberofcharacters,discardlastcharacter

78if(newString.Length%2!

=0)

79{

80discarded++;

81newString=newString.Substring(0,newString.Length-1);

82}

83

84returnHexToByte(newString);

85}

86

87///<summary>

88///Convertsfrombinarycodeddecimaltointeger

89///</summary>

90///<paramname="num"></param&

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1