OutPutStr

wpamn_c 2012-09-21 03:12:46
private void BtGetVersion_Click(object sender, EventArgs e)
{
if (!bEanble || bThread) // Eanble =true bThread =false
return;

byte[] bSerial = new byte[6];
byte[] bVersion = new byte[1];

if (Public.RmuGetVersion(phCom, bSerial, bVersion, pflag))
{
MessageBox.Show("硬件版本号:" + Public.HexByteToString(bSerial, 6) + "\n" + "软件版本号:v" + Convert.ToString(bVersion[0] >> 4) + "." + Convert.ToString(bVersion[0] & 0x0F));
}
else
MessageBox.Show("读取版本信息失败");
}


public static string HexByteToString(byte[] InPutByte, int ConvertLen)
{
string OutPutStr = "";
try
{
for (int i = 0; i < ConvertLen; i++)
{
OutPutStr += Convert.ToString((InPutByte[i] >> 4), 16);
OutPutStr += Convert.ToString((InPutByte[i] & 0x0F), 16);
}
return OutPutStr;// 真心不懂、这个OutPutStr的输出怎么来的,为什么?麻烦高手给讲解下。越详细越好
}
catch (Exception)
{
return "";
}
}
...全文
624 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wpamn_c 2012-09-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

根据InPutByte传入的数组的数据,对每一位先向右移动4位得到一个十六进制值,再and十六进制的0f得到一个十六进制的值,最后把这些都拼起来,得到OutPutStr。
[/Quote]
InPutByte[i]的值是0 ,0>>4怎么解释?这个迷糊。
devmiao 2012-09-22
  • 打赏
  • 举报
回复
那么还是0。
>>4相当于除以16
devmiao 2012-09-21
  • 打赏
  • 举报
回复
根据InPutByte传入的数组的数据,对每一位先向右移动4位得到一个十六进制值,再and十六进制的0f得到一个十六进制的值,最后把这些都拼起来,得到OutPutStr。

110,825

社区成员

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

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

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