Qt函数名怎么定义
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,本篇内容主要讲解"Qt函数名怎么定义",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt函数名怎么定义"吧!函数名 //异或加密算法 stati
千家信息网最后更新 2025年02月04日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安全错误
数据库的锁怎样保障安全
ucsc是什么数据库
厦门 网络安全厂家
赛尔号怀旧服多服务器登录
网络安全的工作目标是啥
大专网络技术期末都考什么
潍坊资产软件开发价格
世界技能大赛商务软件开发
逃离塔科夫局域网交易服务器
软件开发待遇大概多少
1.7.2服务器核心
河南郑州网络技术有限公司
浪潮服务器配置带外管理地址
科学网络技术的特点
服务器多了如何管理员
编程前端和数据库哪个更技术
企业网络安全隐患排查的内容
规划建设魏都区互联网科技园
湖北家用软件开发价格多少
有关软件开发过程的论文报告
铁路网络安全事件按级别
国产数据库技术员
数据库索引右键不能新建
服务器机柜理线图解
软件开发大致流程
信息部网络安全措施
软件开发合同中途中止处理
北辰区信息网络技术售后服务
书画数据库设计与实现
bs架构中中数据库服务器
如何解数据库锁