数字转换十六进制制解一个数字亲们0一27

当前位置: >>
把一个IP地址转成16进制的数字
'转换过程如下: '1、取得 IP,如:192.168.0.1 '2、再将 IP 顺序反转:1.0.168.192 '3、将 IP 分成四部分,分别转成 16 进制,位数不足,在左边加 0,转换完成后 为:01.00.A8.C0 '4、去掉所有的&.&,结果为:100A8C0 '5、再将其转成十进制:168204
16 '// IP 到数字转换 Public Function IPToNumber(ByVal strValue As String) As String Dim strTemp As String Dim strIP() As String Dim strOutput As String Dim i As Integer On Error GoTo LocatErr '// 将 IP 分成 4 个部份 strIP = Split(strValue, &.&) '// 这里是将 IP 倒过来的,即:192.168.0.1=1.0.168.192 For i = 3 To 0 Step -1 strTemp = Hex$(strIP(i)) '// 将每部份以 2 位数的数字表示 strOutput = strOutput & String(2 - Len(strTemp), &0&) & strTemp Next IPToNumber = CStr(Trim(CLng(&&H& & strOutput))) Exit Function LocatErr: Err.Clear IPToNumber = && End Function '// 数字到 IP 转换(是通过 IPToNumber 转换过的数字) Public Function NumberToIP(ByVal strValue As String) As String Dim strTemp As String Dim strIP(1 To 4) As String Dim strOutput As String Dim i As Integer On Error GoTo LocatErr '// 取得十六进制值 strTemp = Hex$(strValue) '// 不足 8 位前面加 0 strTemp = String(8 - Len(strTemp), &0&) & strTemp '// 将数字以每 2 位分给数组 For i = 1 To 4 strIP(i) = Mid$(strTemp, (i - 1) * 2 + 1, 2) Next '// 合并 IP For i = 4 To 1 Step -1 strOutput = strOutput & CInt(&&H& & strIP(i)) & &.& Next '// 去掉最后的一个 &.& strOutput = Left$(strOutput, Len(strOutput) - 1) NumberToIP = strOutput Exit Function LocatErr: Err.Clear NumberToIP = && End Function单片机通信十六进制字符串转化为字符数组的程序以及对程序的解释_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机通信十六进制字符串转化为字符数组的程序以及对程序的解释
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢中国古代使用过十六进制吗,数字是怎么写的,十一至十六如何表示? - 知乎8被浏览2791分享邀请回答14 条评论分享收藏感谢收起61 条评论分享收藏感谢收起查看更多回答C++中如何表示2进制,8进制、16进制变量 - 柳北风儿~~~~~~~欲宇仙炅 - ITeye博客
博客分类:
1、C和C++都没有提供二进制数的表达方法。
2、C,C++语言中,如何表达一个八进制数呢?
如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或,那么它是八进制数还是10进制数,都有可能。
所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。
这就是八进制数在C、C++中的表达方法。但是有一个例外就是转意符'\'。
因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以 :
//ASCII值是63
'\077' //是8进制表示'?',0可以省略,因为C,C++规定不允许使用斜杠加10进制数来表示字符
'\0x3F' //是16进制表示'?'
3、 C,C++规定,16进制数必须以 0x开头
其中的x也也不区分大小写。(注意:0x中的0是数字0,而不是字母o)。
1) 8进制和16进制只能用达无符号的正整数,如果你在代码中里:-078,或者写:-0xF2,C,C++并不把它当成一个负数。
2) Qt中把十进制整型值转换成16进制 的字符串方法。
int a = 63;
QString s = QString::number(a, 16);
// s == "3f"
QString t = QString::number(a, 16).toUpper();
// t == "3F"
3) QString 存储16进制值
QString cmd = 0x0a;
qDebug() &&"
cmd:"&& cmd.toAscii().toHex();
4)QString 按照字符串表面格式 转换成16进制
QString str = "FF";
int hex = str.toInt(&ok, 16);
// hex == 255, ok == true 0xFF
int dec = str.toInt(&ok, 10);
// dec == 0, ok == false
4) QByteArray 存储16进制值
static const char mydata[] = {
0x00, 0x00, 0x03, 0x84, 0x78, 0x9c, 0x3b, 0x76,
0xec, 0x18, 0xc3, 0x31, 0x0a, 0xf1, 0xcc, 0x99,
0x6d, 0x5b
QByteArray bd = QByteArray::fromRawData(mydata, sizeof(mydata));
qDebug() &&"bd.data:" &&bd.data();
qDebug() &&"bd.toHex():"&&bd.toHex();//输出16进制值
5) QChar 存储16进制值,打印
QChar c = 0x0A;
array.append(c);
qDebug() && array.toHex();//结果是"0a"
6)char* 存储16进制,打印
char c[] = {0x0A,0x0B,'\0'};
QByteArray array(c);
qDebug() && array.toHex();//结果 "0a0b"
浏览 41759
浏览: 2111332 次
来自: 苏州
Qt5改动很多,要改改了。
楼主,2.2子查询的分页方式:SELECT * FROM ar ...
非常感谢楼主的用心指导,工具以及图片例子都提供了
问下这个图片怎么解压损坏呀
楼主讲解的非常详细,还附带工具和图片例子,非常感谢

我要回帖

更多关于 数字转换十六进制 的文章

 

随机推荐