QByteArray int double 转换
来源:互联网 发布:js 数组增加元素 编辑:程序博客网 时间:2024/06/07 19:46
QByteArray 转换
在操作sqlite时 有一个种类型 为blod ,对应就是QByteArray
有时就需要将一些值 存入QBYTEARRAY,或者 从qbytearray取出值,例 如INT,DOUBLE依次放入BLOB,然后取出,相当 于数组
下面是一些转换
void intToByte(int value,int step ,QByteArray &byteArray)
{
byteArray[step] = (uchar) (0x000000ff & value);
byteArray[step+1] = (uchar) ((0x0000ff00 & value) >> 8);
byteArray[step+2] = (uchar) ((0x00ff0000 & value) >> 16);
byteArray[step+3] = (uchar) ((0xff000000 & value) >> 24);
}
int bytesToInt(QByteArray bytes,int step) {
int addr = bytes[step] & 0x000000FF;
addr |= ((bytes[step+1] << 8) & 0x0000FF00);
addr |= ((bytes[step+2] << 16) & 0x00FF0000);
addr |= ((bytes[step+3] << 24) & 0xFF000000);
return addr;
}
//举例
下面会将多个INT依次放入QBYTEARRAY
QString str="INSERT INTO temData VALUES (?)";
QList<QVariant> lstParameter;
len = _circleMap.size();
step=0;
QByteArray _modelCircleBytes;
for (size_t i =0; i < len; i ++) {
CircleItem m_CircleItem = _circleMap[i];
intToByte(m_CircleItem.Cent.x,step,_modelCircleBytes);
step=step+4;
intToByte(m_CircleItem.Cent.y,step,_modelCircleBytes);
step=step+4;
intToByte(m_CircleItem.Rad,step,_modelCircleBytes);
step=step+4;
}
lstParameter.push_back(_modelCircleBytes);
再执行数据库操作就实现将多个INT存入SQLITE的BLOB取出时就调用另一个函数一样的操作
double的转换
//存入
step=0;
QByteArray _modelLineBytes;
for (size_t i =0; i < len; i ++) {
//K,B就double采有MEMCPY
_modelLineBytes.append(reinterpret_cast<const char*>(&(k)), sizeof(double));
step=step+sizeof(double);
_modelLineBytes.append(reinterpret_cast<const char*>(&(b)), sizeof(double));
step=step+sizeof(double);
}
取出
if(tmpByteArray.size() !=0)
{
for(int i=0;i<tmpByteArray.size()/16;i++)
{
tmpLineItem.k =*reinterpret_cast< double*>(tmpByteArray.data()+step);
step=step+sizeof(double);
tmpLineItem.b = *reinterpret_cast< double*>(tmpByteArray.data()+step);
step=step+sizeof(double);
}
}
阅读全文
0 0
- QByteArray int double 转换
- int QString char* QByteArray转换
- QT下int与QByteArray的转换
- QT下int与QByteArray的转换
- Qstring,char,int,QByteArray之间到转换
- QT下int与QByteArray的转换
- Qt类型转换 QString,int,char,QByteArray之间相互转换
- int, float, double 直接转换
- Qt中Qstring,char,int,QByteArray之间到转换
- Qt中Qstring,char,int,QByteArray之间到转换
- Qt中QString,int,char,QByteArray之间相互转换
- Qt中QString,char,int,QByteArray之间到转换
- Qt中Qstring,char,int,QByteArray之间到转换
- Qt中Qstring,char,int,QByteArray之间到转换
- Qt中Qstring,char,int,QByteArray之间到转换
- Qt中Qstring,char,int,QByteArray之间到转换
- Qt中Qstring,char,int,QByteArray之间到转换
- Qt中Qstring,char,int,QByteArray之间到转换
- 设计模式之桥接模式
- LeetCode #75
- Adnroid应用屏幕适配
- 致30~
- web 应用 为啥 需要用到 tomcat 之类的 部署
- QByteArray int double 转换
- centos7开启FTP
- c3p0数据连接池更换为druid
- H5使用Canvas模板设计签名并将图片保存到本地
- JS: Not allowed to load resource
- MediaPlay的常用方法
- vim对齐(vim-easy-align)
- Kafka快速上手(2017.9官方翻译)
- Tomcat管理的摘抄