可以使用 val("&H" & Text1text) 来转文本框的16进制内容转换成数字,想到得到数字的16进制字符串可以使用hex函数
dim UDS_TXID_P,UDS_RXIDUDS_TXID_P = Val("&H" & Text1text)
UDS_RXID = Val("&H" & Text2text)
'想要以16进制输出,则如下
print hex(UDS_TXID_P)
pritn hex(UDS_RXID)
VB字符串可通过使用StrConv 函数,将字符串由 Unicode 转成系统的缺省码页后,再获取每个字节的十六进制字符后拼接起来。
StrConv 函数,返回按指定类型转换的 Variant (String)。
实现代码:
Private Sub Command1_Click()Dim strSj As String
Dim strHexSj As String
Dim i As Long
Dim bytSj() As Byte
strSj = "123ABC十六进制"
bytSj = StrConv(strSj, vbFromUnicode)
For i = 0 To UBound(bytSj)
strHexSj = strHexSj & Right("0" & Hex(bytSj(i)), 2)
Next
DebugPrint strHexSj
End Sub
vbFromUnicode,将字符串由 Unicode 转成系统的缺省码页。
既可以转换单字节字符也可转换双字节字符。
要看你的字符串是怎么写的。
例如: char s[]="07BC3A";
int v;
你可以用 sscanf(s,"%x",&v); 变成整型值,存入 v
你也可以用 strtol 函数, v = strtol(s, NULL, 16); 赋给 v
打印16进制数值: printf("%#x", v);
char m_pData;
memcpy(m_pData, pData, nLength);
m_nLength = nLength;
//char存储到QString里
for (int i = 0; i < m_nLength; i++)
{
bool ok;
QString m_tmp = QString::number(m_pData,16);
//接收字符为0x00,变字符串为00
if (m_tmptoInt(&ok,10) == 0)
{
m_tmp = ("00");
}
//接收字符为0x04,0x07等,补足0
if ((m_tmptoInt(&ok,10) < 10) && (m_tmptoInt(&ok,10) > 0))
{
m_tmp = m_tmpinsert(0, "0");
}
m_exchangeappend(m_tmp);
m_exchangeappend(" ");
m_pData = m_pData + 1;
m_tmpclear();
}
没懂啥意思,可以先将字符串转化为整型,后面有需要了,再将整型转化为16进制的数字
int parseInt = IntegerparseInt("cc", 16);
Systemoutprintln(parseInt);
String hexString = IntegertoHexString(parseInt);
Systemoutprintln(hexString);
过程有些曲折,但是道理很简单,公式如下,
=DEC2HEX(CODE(A2))&DEC2HEX(CODE(MID(A2,2,1)))&DEC2HEX(CODE(MID(A2,3,1)))&DEC2HEX(CODE(MID(A2,4,1)))&DEC2HEX(CODE(MID(A2,5,1)))&DEC2HEX(CODE(MID(A2,6,1)))&DEC2HEX(CODE(MID(A2,7,1)))&DEC2HEX(CODE(MID(A2,8,1)))&DEC2HEX(CODE(MID(A2,9,1)))&DEC2HEX(CODE(MID(A2,10,1)))&DEC2HEX(CODE(MID(A2,11,1)))&DEC2HEX(CODE(MID(A2,12,1)))&DEC2HEX(CODE(MID(A2,13,1)))
下拉即可
16进制与字符串、字节数组之间的转换
在串口通讯过程中,经常要用到 16进制与字符串、字节数组之间的转换
/// <summary>
/// 字符串转16进制字节数组
/// </summary>
/// <param name="hexString"></param>
/// <returns></returns>
private static byte[] strToToHexByte(string hexString)
{
hexString = hexStringReplace(" ", "");
if ((hexStringLength % 2) != 0)
hexString += " ";
byte[] returnBytes = new byte[hexStringLength / 2];
for (int i = 0; i < returnBytesLength; i++)
returnBytes[i] = ConvertToByte(hexStringSubstring(i 2, 2), 16);
return returnBytes;
}
字节数组转16进制字符串
/// <summary>
/// 字节数组转16进制字符串
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static string byteToHexStr(byte[] bytes)
{
string returnStr = "";
if (bytes != null)
{
for (int i = 0; i < bytesLength; i++)
{
returnStr += bytes[i]ToString("X2");
}
}
return returnStr;
}
从汉字转换到16进制
/// <summary>
/// 从汉字转换到16进制
/// </summary>
/// <param name="s"></param>
/// <param name="charset">编码,如"utf-8","gb2312"</param>
/// <param name="fenge">是否每字符用逗号分隔</param>
/// <returns></returns>
public static string ToHex(string s, string charset, bool fenge)
{
if ((sLength % 2) != 0)
{
s += " ";//空格
//throw new ArgumentException("s is not valid chinese string!");
}
SystemTextEncoding chs = SystemTextEncodingGetEncoding(charset);
byte[] bytes = chsGetBytes(s);
string str = "";
for (int i = 0; i < bytesLength; i++)
{
str += stringFormat("{0:X}", bytes[i]);
if (fenge && (i != bytesLength - 1))
{
str += string
以上就是关于VB中如何将字符串转换成16进制并赋值给变量全部的内容,包括:VB中如何将字符串转换成16进制并赋值给变量、VB 字符串 转为十六进制、怎么把一个字符串转换成16进制数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!