我有一系列十六进制值,需要将它们从intel Hex
格式转换为int。
但是,这些值在单个字符串中,没有分隔符并且长度不同。
字符串示例::A40425B6
,它表示3个整数:A4, 0425
和B6
。
在C
中,有一种简单的方法(在删除:
之后):
sscanf(line.toLocal8Bit().constData(), "%2x%4x%2x", &byteCount, &address, &recordType);
当然,可以简单地用定界符分割字符串,然后将其转换为:
byteCount = Convert.ToInt32(line.Substring(1, 2), 16);
address = Convert.ToUInt32(line.Substring(3, 4), 16);
recordType = Convert.ToUInt32(line.Substring(7, 2), 16);
但是,有没有一种更清洁的方式来做到这一点呢?