Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么是操作员<&书信电报;你喜欢这一行吗?_C++_Operators - Fatal编程技术网

C++ 什么是操作员<&书信电报;你喜欢这一行吗?

C++ 什么是操作员<&书信电报;你喜欢这一行吗?,c++,operators,C++,Operators,我不明白这条线的作用: fBuffer[fByteIndex] += 1 << (fBitIndex - 1); 以及: for(int i=0;i

我不明白这条线的作用:

fBuffer[fByteIndex] += 1 << (fBitIndex - 1);
以及:

for(int i=0;i<32;i++)
fBuffer[i]=0;
fBitIndex=8;

这就是所谓的位移位。每个字节由8位(0或1)组成。通过将位向左或向右移动一次,可以将数字乘以2或除以2。

这是位移动。十进制数1以二进制表示(仅显示较低的8位),如下所示

如果我有

int i=1;
int j=i<<1;
以十进制表示的值是2。如果我有

int j=i<<6;

十进制数为128。

它设置位fBuffer[fByteIndex]


1重复投票重新开始。这里有一些正确的答案,“如果我错了,告诉我,没有符号Char fBase[32 ]意味着FFuffs中的一组字符,例如f缓冲器[4 ]是fFuffar数组中的第五字符,对吗?这个数组是如何工作的+=1?!我是C++中的新的,我不能得到它。例如,如果我有:F缓冲器[4] += 1,则<代码> fBuff[5 ]。的值与
1一起相加。好吧。我得到的1A“char(acter)”在这个上下文中只是一个单字节值。(我想说,名称选择不当,特别是在我们使用Unicode等多字节字符集的今天…)因此,
fBuffer
数组中的每个条目都可以包含一个介于0和255之间的值。这些值也与ASCII字符集中的字符相对应只是解释其值的众多方法之一。好的,现在我知道了。谢谢。:,,
00000001
int i=1;
int j=i<<1;
00000010
int j=i<<6;
01000000
fBuffer[fByteIndex] += 1 << (fBitIndex - 1);
fBuffer[fByteIndex] += 128;