关于编程符号"<<"的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于编程符号"<<"的问题相关的知识,希望对你有一定的参考价值。

很多程序都有诸如1<<number之类的式子,这个<<究竟是什么意思啊???

<<是位运算操作符,左移运算
1<<number其实就是2^number的另一种写法
参考技术A
用转义字符

& lt; < 小于号

& gt; > 大于号

& amp; & 和

& apos; ' 单引号

& quot; " 双引号

<= 要写成 & lt;=
参考技术B << 表示按位左移 参考技术C 左移 参考技术D 向左移.

请教QDatastream与QVariant的相关问题(QT编程)

QVariant V("123");
QByteArray b("321");
QDataStream o(&b,QIODevice::ReadWrite);
o << V;
cout<<" b:"<<b.data()<<endl;
cout<<" V:"<<V.toByteArray().data()<<endl;
我想问下为什么b输出为空?

参考技术A

1、如果将cout换为二进制文件QFile(或者查看调试时的变量b值),

    QFile file("file.dat");
    file.open(QIODevice::WriteOnly);    
    QDataStream out(&file);
    out<<V;    
    file.close();

那么会发现输出的结果是\\0 \\0 \\0 \\n \\0 \\0 \\0 \\0 6 \\0 '1' \\0 '2' \\0 '3'.

2、如果将o << V;替换为o << V.toByteArray();,那么结果为\\0 \\0 \\0 \\0 3 '1' '2' '3'.

3、如果直接将V输出到控制台上,显示结果为QVariant(QString, "123");

 

所以,推测为QVariant具有独特的内存结构,如果直接以QByteArray将其内存数据输出到控制台,由于内存格式仍为QVariant的内存结构,所以控制台上不能显示出来。

 

不过,再具体的就说不上来了,查看QVariant类定义,也没有发现为什么会有\\0 \\0 \\0 \\n等这样的数据。希望高手解答啊。

以上是关于关于编程符号"<<"的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于wpf窗体编程的问题~ 在使用visualBrush进行字体上下镜像对称出现时,如下图所示:

C语言编程 关于计算时间的问题 望高手解答!

请教QDatastream与QVariant的相关问题(QT编程)

编写一个java程序: 是关于RLE decode 比如说:sdf^5t经过程序后就会成为sdfttttt 符号是" ^ " 谢谢

求助:关于用javascript编的一个脚本

匹配符号的正则表达式:!$%^&*()_+|~-=`[]:";'<>?,./