Qt函数名怎么定义
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,本篇内容主要讲解"Qt函数名怎么定义",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt函数名怎么定义"吧!函数名 //异或加密算法 stati
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
宁波交通局 网络安全
赣榆网络安全大队在哪里
los软件开发
昌平服务器内存条回收
地方麻将软件开发定制
饥荒联机版服务器连接慢
超图软件数据库打不开
广州互联网网律科技
dnf服务器会降价吗
软件开发资产配置标准
centos5.8数据库
万网独立服务器
收录数据库
浙江省网络技术市场
ai设计网络安全海报
sql查本数据库
哪个部门主管网络安全
计算机网络技术的求职岗位
我的世界服务器需要先干嘛
互联网科技运营企业 特点
什么是系统人软件开发
海康威视运营管理中心服务器
服务器点检及备份管理
收钱吧合肥天团互联网科技
国内一线网络安全公司
哈尔滨网络安全周收官
抢票系统服务器设计
网络技术二级是什么
服务器不装硬盘开机照片
组建外网服务器