最近在做一个项目,其中发送部分需要对数据进行移位和&操作,在网上找了许久的转换方式,结果并没有。后来领导一句话,让我明白了,“十进制数和16进制数是一样的”,确实,貌似,刚来时,用C++对公司原有的项目进行维护时,增加过一个标定功能,给发送数组赋的就是10进制的说。
Data_volt[2] = (byte)(0x80 + ((Convert.ToByte(“0x” + v_data[0].Substring(0, 2), 16)) & 0x7f));
以后还是要多总结,不然一些傻乎乎的事儿,做起来还风风火火的。
附上查找资料过程中有用的一些资料地址:
https://www.cnblogs.com/ThreeS/articles/9377547.html
https://www.cnblogs.com/screes/p/5633383.html
还有一个关于补零的:https://blog.csdn.net/qq_22889875/article/details/79320678
参考其我如此使用:
//将16进制字符串低位字节补零
//string str= Convert.ToString(a, 16);
//str为整数a对应的十六进制字符串
public string HexstrAddZero(string str)
{
string strByeZero = "";
if(str.Length == 4)
{
strByeZero = str;
}
else if(str.Length == 3)
{
strByeZero = "0"+str;
}
else if (str.Length == 2)
{
strByeZero = "00" + str;
}
else if (str.Length == 1)
{
strByeZero = "000" + str;
}
else if(str.Length == 0)
{
strByeZero = "0000";
}
return strByeZero;
}
扩展为两个字节的16进制字符串补零