unsigned char * db_str
unsigned char high_byte , low_byte ;
for (i = 0; i < len; i += 2)
{
high_byte = db_str[i];
low_byte = db_str[i + 1];
if (high_byte > 0x39)
high_byte -= 0x37;
else
high_byte -= 0x30;
if (low_byte > 0x39)
low_byte -= 0x37;
else
low_byte -= 0x30;
str[i / 2] = (high_byte << 4) | low_byte;
}
下面这个啥意思啊 high_byte > 0x39 整体呢
答案:2 悬赏:80 手机版
解决时间 2021-01-24 19:44
- 提问者网友:缘字诀
- 2021-01-24 11:07
最佳答案
- 五星知识达人网友:千杯敬自由
- 2021-01-24 11:35
那个是高位和低位 0x39是16进制数 这应该是寄存器中存储数据的吧
全部回答
- 1楼网友:往事隔山水
- 2021-01-24 11:47
利用system.convert.tobyte方法可以将 0x开始的十六进制格式字符串转换成byte类型值。例如
string s = "0x55";
byte b = system.convert.tobyte(s, 16);
console.writeline(b); //输出85
s = "0xff";
b = system.convert.tobyte(s, 16);
console.writeline(b); //输出255
即使字符串中不包含前导"0x",system.convert.tobyte也可完成转换
string s = "55"; //55是十六进制格式
byte b = system.convert.tobyte(s, 16);
console.writeline(b); //输出85
s = "ff"; //ff是十六进制格式
b = system.convert.tobyte(s, 16);
console.writeline(b); //输出255
为了防止转换过程的异常,可以用try...catch...
s = ....;
byte b = 0;
try
{
b = system.convert.tobyte(s, 16);
}
catch(formatexception)
{
console.writeline("无法转换成byte类型值!");
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯