C#10进制转成16进制细节问题

XL627957378 2015-12-16 12:53:10
string Dec; //定义字符串“Dec”
int b = 0; //定义整数“b”初始值为0
Dec = txt_char.Text; //将textBox3输入的值赋给“Dec”
for (int i = 0; i < Dec.Length; i++) //对i定义并赋初始值0,如果i小于字符串的个数,i++
{
int c = 1; //对c定义并赋初始值0
for (int j = Dec.Length - i - 1; j > 0; j--) //for循环,对j定义并赋值字符串的长度-i-1,
{
c = c * 10;
}
if (Dec[i] > 57 || Dec[i] < 48) //且
MessageBox.Show("错误,输入的应该是十进制整数。");
else
b = b + ((int)Dec[i] - 48) * c;
c = 1;
}
txt_ASCII.Text = "0x" + BitConverter.ToString(BitConverter.GetBytes(b)).Replace("-", " 0x");




这样会有四个OX了 OX4D OX11 OX00 OX00 怎么把后面两个去掉 。 而且高低位好像反了 好像是0X11在前面0X4D在后面

请大神指教 没什么分了、、 输入1234 要显示 OX11 OX4D
...全文
1023 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-12-16
  • 打赏
  • 举报
回复
你的代码对于 1234 输出的是 0xD2 0x04 0x00 0x00 后面的两个 0x00 是由于你的 b 是 int 类型(4字节)造成的 这样就没有了 "0x" + BitConverter.ToString(BitConverter.GetBytes((Int16)b)).Replace("-", " 0x"); 0xD2 0x04 反映的是数据在内存中存放的形式(低位在前) 输出 0x04 0xD2 就错了,与实际情况不符 输出成 0x04D2 才行
bdmh 2015-12-16
  • 打赏
  • 举报
回复
textBox1.Text = "0x" + BitConverter.ToString(BitConverter.GetBytes(b)).Replace("-", " ");  
xdashewan 2015-12-16
  • 打赏
  • 举报
回复
1234的16进制应该是04D2,不知道你怎么弄出114D,byte转16进制直接.ToString("X2")就行,byte数组反转可以用Reverse()

110,533

社区成员

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

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

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