深入解析>>符号的多重含义:从数学到编程的全面解读
在查看希尔排序时,我发现有些人在确定步长值时使用了符号>>。当时我无法理解它是做什么用的。后来百度后得到了答案。

>> 可以表示的不仅仅是符号、许多编程语言中的运算符以及一种类型的运算符。它有三层含义:一是数学远大于符号,一是计算机上的右移运算符,三是C++输入运算符。
比符号大得多
在数学公式中,“>>”代表远大于符号,表示一个数比另一个数大得多,如76>>3、-2>>-99等。Poincaré和Borel在1901年首次使用它,它很快就被数学界所接受,并沿用至今。 ,
右移运算符编辑
在很多计算机编程语言中(例如:C语言、C++语言、Java语言、JavaScript语言、Pascal语言等),“>>”代表右移运算符,相当于“shr”。该运算符是二元运算符。组合方向是从左到右。它的功能是将一个整数的所有位向右移动指定的位数。超出右边界的多余二进制位将被丢弃,并从左边界移入一个二进制位。如果原数的最高位为1,则移位后的二进制位为1,否则为0。
右移运算的两个操作数应为整数类型。第一个操作数是要移位的数字,第二个操作数指定要移位第一个操作数的位数。如果第二个操作数等于 0,则不会发生移位。
应用实例:
问题:评估表达式 14 >> 2。
答案:表达式 14 >> 2 的计算结果为 3,因为 14(即二进制 00001110)向右移动两位等于 3(即二进制 00000011)。
说白了,就是将要移动的数转换成二进制。如果向右移动几位数字,请删除右侧的数字。如果向左移动几位,则在右侧添加几个0。例如,如果14右移2位,则转换为二进制。变成1110,去掉右边的10,就变成11。11换算成十进制是3;左移2位是111000,换算成十进制是56。
C++ 输入运算符编辑
在C++中我们将>>视为输入运算符,它是流类中的一个重要运算符。
在C++中,有一个流类。所有的I/O都是基于这个“流”类,包括我们需要知道的文件I/O。流类有两个重要的运算符:
提取器(>>)
从流中输入数据。例如,系统有一个默认的标准输入流(cin),一般指的是键盘。因此,cin>>x;表示从标准输入流中读取指定类型(即变量x的类型)的数据。 。从左操作数指定的输入流中读取数据到右操作数:cin >> i 将标准输入流中的下一个值读取到 i 中。
和其他功能没有什么区别。 C/C++追求的是简单性。当需要处理大量输入时,我们使用这样的函数: scanf("%d",&a);scanf("%d",&b);scanf("%d" ,&c); (假设是一个短整数)
.....但是如果你使用运算符,你可以这样做,cin>>a>>b>>c