单片机中的data,bdata,idata等用法

51单片机中的data, bdata, idata, xdata,code等内存区域的范围如下:

上表可以看出bdata的描述是:

片内RAM 位寻址区

只有这个区域的变量可以使用X^N的方式进行位寻址。
因此一个u8类型就可以作为8个bit的状态量供8条逻辑使用,节约内存开支。

Qt获取IP地址,子网掩码,网关地址

Qt获取操作系统网络信息挺尴尬的,使用自带的QNetworkInterface不光层级众多,而且很难获取Gateway网关,网上有使用第三方库IPHlpApi获取网关的方法,无疑又会增加复杂度。
这里简单的使用cmd命令+正则匹配来获取,利用Windows提供的ipconfig或者Linux提供的ifconfig等命令迅速获取相关信息:

QString Utils::GetIP(){
    QString ip = "";
    QProcess cmd_pro ;
    QString cmd_str = QString("ipconfig");
    cmd_pro.start("cmd.exe", QStringList() << "/c" << cmd_str);
    cmd_pro.waitForStarted();
    cmd_pro.waitForFinished();
    QString result = cmd_pro.readAll();
    QString pattern("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}");
    QRegExp rx(pattern);

    int pos = 0, count = 0;
    while((pos = rx.indexIn(result, pos)) != -1){
        ip += rx.cap(0) + ",";
        count++;
        if(count == 3)
            break;
        pos += rx.matchedLength();
    }
    return ip;
}

丁丁生于 1987.07.01 ,30岁,英文ID:newflydd

  • 现居住地 江苏 ● 泰州 ● 姜堰
  • 创建了 Jblog 开源博客系统
  • 坚持十余年的 独立博客 作者
  • 大学本科毕业后就职于 中国电信江苏泰州分公司,前两年从事Oracle数据库DBA工作,两年后公司精简技术人员,被安排到农村担任支局长(其本质是搞销售),于2016年因志向不合从国企辞职,在小城镇找了一份程序员的工作。
  • Git OSChina 上积极参与开源社区