Qt函数名怎么定义
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容主要讲解"Qt函数名怎么定义",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt函数名怎么定义"吧!函数名 //异或加密算法 stati
千家信息网最后更新 2025年12月02日Qt函数名怎么定义
本篇内容主要讲解"Qt函数名怎么定义",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt函数名怎么定义"吧!
函数名
//异或加密算法 static QString getXorEncryptDecrypt(const QString &str, char key); //异或校验 static uchar getOrCode(const QByteArray &data); //计算校验码 static uchar getCheckCode(const QByteArray &data); //CRC校验 static quint16 getRevCrc_16(quint8 *data, int len, quint16 init, const quint16 *table); static quint16 getCrc_16(quint8 *data, int len, quint16 init, const quint16 *table); static quint16 getModbus16(quint8 *data, int len); static QByteArray getCRCCode(const QByteArray &data);
函数体
QString QUIHelper::getXorEncryptDecrypt(const QString &str, char key){ QByteArray data = str.toLatin1(); int size = data.size(); for (int i = 0; i < size; i++) { data[i] = data[i] ^ key; } return QLatin1String(data);}uchar QUIHelper::getOrCode(const QByteArray &data){ int len = data.length(); uchar result = 0; for (int i = 0; i < len; i++) { result ^= data.at(i); } return result;}uchar QUIHelper::getCheckCode(const QByteArray &data){ int len = data.length(); uchar temp = 0; for (uchar i = 0; i < len; i++) { temp += data.at(i); } return temp % 256;}//函数功能:计算CRC16//参数1:*data 16位CRC校验数据,//参数2:len 数据流长度//参数3:init 初始化值//参数4:table 16位CRC查找表//逆序CRC计算quint16 QUIHelper::getRevCrc_16(quint8 *data, int len, quint16 init, const quint16 *table){ quint16 cRc_16 = init; quint8 temp; while (len-- > 0) { temp = cRc_16 >> 8; cRc_16 = (cRc_16 << 8) ^ table[(temp ^ *data++) & 0xff]; } return cRc_16;}//正序CRC计算quint16 QUIHelper::getCrc_16(quint8 *data, int len, quint16 init, const quint16 *table){ quint16 cRc_16 = init; quint8 temp; while (len-- > 0) { temp = cRc_16 & 0xff; cRc_16 = (cRc_16 >> 8) ^ table[(temp ^ *data++) & 0xff]; } return cRc_16;}//Modbus CRC16校验quint16 QUIHelper::getModbus16(quint8 *data, int len){ //MODBUS CRC-16表 8005 逆序 const quint16 table_16[256] = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 }; return getCrc_16(data, len, 0xFFFF, table_16);}//CRC16校验QByteArray QUIHelper::getCRCCode(const QByteArray &data){ quint16 result = getModbus16((quint8 *)data.data(), data.length()); return QUIHelper::ushortToByteRec(result);}到此,相信大家对"Qt函数名怎么定义"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
函数
内容
学习
实用
更深
兴趣
实用性
实际
操作简单
方法
更多
朋友
算法
网站
逆序
频道
加密
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
吉林大学数据库与智能网络研究室
全国各地地址的数据库
网站如何建立数据库后台管理
软件开发管理风险分析
苏州app软件开发公司排行
服务器和交换机连接顺序
数据库的规模
知网的数据库多久更新
特殊专业人才 网络安全
北京师范大学服务器云主机
怎么连接云服务器
软件开发职位工资
手机app软件开发平台
数据库安全性保护机制的是
管家婆数据库重建
网络安全人人有责人人参与
无锡进口软件开发项目信息
ice服务器号到底是多少
代理服务器 win8
数据库关联查询语句特点
数据库宏的英文
上海夺畅网络技术有限公司广州
莆田市众览网络技术有限公司
陕西网络技术服务
江门自主可控软件开发平均价格
数据库身份证什么类型
网络安全注意哪些细节
永康市学途网络技术有限公司
mock测试数据库不回滚
数据库统计数据时分组显示