进制转换

emp 2010-01-05 03:49:29
如何把一个16进制的数组byte[] i={0x20,0x11,0x30,0x12};转换为10进制数组int[] j={20,11,30,12}
...全文
237 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Snowdust 2010-01-06
  • 打赏
  • 举报
回复
哎,基础啊!
soaringbird 2010-01-06
  • 打赏
  • 举报
回复
Console.WriteLine(j[t])
改成
Console.WriteLine(j[t].ToString("X"))
owlet_leo 2010-01-06
  • 打赏
  • 举报
回复
仅仅去掉0x那就不是进制转换了。
如果十六进制数是0xABCDEF怎么办,怎么转?
emp 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 soaringbird 的回复:]
你怎么还不明白?0x只存在于字符串中,是给你看的,内部是没有什么十六进制十进制的
[/Quote]
byte[] i= {0x20,0x11,0x30,0x12 };
int[] j= Array.ConvertAll <byte,int>(i,delegate(byte b) {return b; });
for(int t=0;t <i.Length;t++){Console.WriteLine(j[t]);}
结果
32
17
48
18
不是想要的20,11,30,12
怎么能得到想要的?
soaringbird 2010-01-06
  • 打赏
  • 举报
回复
你怎么还不明白?0x只存在于字符串中,是给你看的,内部是没有什么十六进制十进制的
emp 2010-01-06
  • 打赏
  • 举报
回复
就是把十六进制的数如0x38,去掉0x,变成38
kensouterry 2010-01-06
  • 打赏
  • 举报
回复
不理解楼主到底想怎么转换,0X20转换到10进制是20吗?
emp 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 vrhero 的回复:]
byte[]转换int[]很容易...但要记住,在计算机中的数据是没有16进制和10进制的...
C# code
byte[] i= {0x20,0x11,0x30,0x12 };int[] j= Array.ConvertAll<byte,int>(i,delegate(byte b) {return b; });
[/Quote]
不对啊,这样还是直接换了,不是去掉0x那种转换

byte[] i= {0x20,0x11,0x30,0x12 };
int[] j= Array.ConvertAll<byte,int>(i,delegate(byte b) {return b; });
for(int t=0;t<i.Length;t++){Console.WriteLine(j[t]);}
结果
32
17
48
18
不是想要的20,11,30,12
bwangel 2010-01-06
  • 打赏
  • 举报
回复
饶了我吧,我刚才吃完午饭...
viena 2010-01-06
  • 打赏
  • 举报
回复
又见脑残
脑残片便宜卖了,5毛1片,批发优惠~
  • 打赏
  • 举报
回复
学习
睡神在睡觉 2010-01-05
  • 打赏
  • 举报
回复
确实进制只是给人看的……想把ABCDEF检测出来,自己写段代码吧,遇到A就翻译成10,以此类推,
烈火蜓蜻 2010-01-05
  • 打赏
  • 举报
回复
呵呵,有点意思
vrhero 2010-01-05
  • 打赏
  • 举报
回复
byte[]转换int[]很容易...但要记住,在计算机中的数据是没有16进制和10进制的...
byte[] i = { 0x20, 0x11, 0x30, 0x12 };
int[] j = Array.ConvertAll<byte, int>(i, delegate(byte b) { return b; });
vrhero 2010-01-05
  • 打赏
  • 举报
回复
真是搞笑...转什么转?16进制的byte和10进制的byte有什么区别?除了4楼6楼都应该去补习计算机基础课...
chen8410 2010-01-05
  • 打赏
  • 举报
回复
//十进制转二进制 
Console.WriteLine(Convert.ToString(69, 2));
//十进制转八进制
Console.WriteLine(Convert.ToString(69, 8));
//十进制转十六进制
Console.WriteLine(Convert.ToString(69, 16));

//二进制转十进制
Console.WriteLine(Convert.ToInt32(”100111101″, 2));
//八进制转十进制
Console.WriteLine(Convert.ToInt32(”76″, 8));
//十六进制转十进制
Console.WriteLine(Convert.ToInt32(”FF”, 16));
mowensky 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wangyan3422 的回复:]
//十进制转二进制
Console.WriteLine(Convert.ToString(69, 2));
//十进制转八进制
Console.WriteLine(Convert.ToString(69, 8));
//十进制转十六进制
Console.WriteLine(Convert.ToString(69, 16));

//二进制转十进制
Console.WriteLine(Convert.ToInt32(”100111101″, 2));
//八进制转十进制
Console.WriteLine(Convert.ToInt32(”76″, 8));
//十六进制转十进制
Console.WriteLine(Convert.ToInt32(”FF”, 16));
[/Quote]

学习了
wjx251 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wjx251 的回复:]
C# codeint ii=0x20;string ss= ii.ToString("X").Replace("0x","");int jj= Convert.ToInt32(ss);
这样以后,jj的值是20
[/Quote]忽略了abcdef,如果有的话,会出错的。
hehuan1213 2010-01-05
  • 打赏
  • 举报
回复
Console.WriteLine(Convert.ToInt32(”FF”, 16));
soaringbird 2010-01-05
  • 打赏
  • 举报
回复
int[]是不可能的,除非没有abcdef。string[]倒是可以
加载更多回复(5)

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧