小白笔记本【符号篇】(updating)

  • 这是一本笔记本,里面记着之前不曾遇到过的一些东西~

1. 符号:>>

1) 右移运算符

在许多计算机编程语言(例如:C语言、C++语言、Java语言、JavaScript语言、Pascal语言等)中,“>>”代表右移运算符,就相当于“shr”。该运算符为双目运算符,结合方向为从左到右,作用是把一个整型数的所有位向右移动指定的位数,移动到右边界之外的多余二进制位会被丢弃,并从左边界移入一个二进制位,若原数的最高位为1,则移入的二进制位为1,否则为0。

右移运算的两个操作数应为整数类型。第一个操作数是要进行移位操作的数,第二个操作数指定第一个操作数移动的位数。如果第二个操作数等于0则不发生任何移位。

  • 应用举例:
    问:计算表达式14 >> 2的值。
    答:表达式14 >> 2的值为3,因为14(即二进制的00001110)向右移两位等于3(即二进制的00000011)。
    (说白了,就是把要移动的数转换成2进制,右移几位就去掉右边的几位数,左移几位就在右边加几个0,比如14右移2位就是转成二进制变成1110,去掉右边的10,变成11,11转成十进制就是3;左移2位就是111000,转成十进制就是56。)

2) 输入操作符

在C++里面我们把>>当作输入操作符,它是stream这个类里一个重要的运算符。

  • 关于steam:在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符,其中之一为析取器(>>)。
  • 析取器(>>)
    作用:从流中输入数据。
    比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个 指定类型 (即变量x的类型)的数据。从左操作数指定的输入流读入数据到右操作数:cin >> i 把标准输入流中的下一个值读入到i中。
不同的方式 语句
用函数 scanf("%d%d%d",&a,&b,&c);(假设为短整型)
用操作符 cin>>a>>b>>c;

【C++追求的就是简洁~】

3.) 转换运算符

  • 字符是可使用多种不同字符方案或代码页来表示的抽象实体。
    例如,Unicode UTF-16 编码将字符表示为 16 位整数序列,而 Unicode UTF-8 编码则将相同的字符表示为 8 位字节序列。公共语言运行库使用 Unicode UTF-16(Unicode 转换格式,16 位编码形式)表示字符。

  • 举例: a r r a y [ 0 ] = ( array[0] = ( str >> 16 & 0xff);
    表示把字符串$str转换为Unicode 16位的编码,然后存储到数组中。常见的UTF-8编码方式就是把例子中的16改成了8,表示Unicode编码,16位字符。

整理自>>_百度百科

2. 符号 ? :

这个符号之前在上C语言程序设计的时候学到过,但是因为自己平时用的不多,所以有时候看到这个符号会感到迷茫,特此记录。

  • 唯一的一个三目运算符

例子

直接上例子

int y = x>10 ? 1 : 0;

‘?’ 之前的表达式若为真,则返回1;反之,返回0;

推而广之,可写为

(逻辑条件)?(条件成立时的值):(条件不成立时的值)

C语言运算符号_百度百科

拓展:里面有关于种类优先级、C语言的发展以及相关概念。

3. 符号 <<

1) 逻辑左移

拓展

运算符 含义 描述
<< 左移 用来将一个数的各二进制位全部左移N位,高位舍弃,低位补0。
>> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0。
& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。
l 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1,否则为0。

2) cout << c

cout 是 c++语言中的标准函数库提供的IO机制,即输入输出机制。
是一个输出流用来输出数据,需要添加

#include < iostream >
using namespace std;

cout << c 的意思即为输出c的值。

4. 变量类型 bool

布尔型变量bool

  • 布尔型变量的值只有 真 (true) 和假 (false)。
  • 布尔型变量可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。
  • bool可用于定义函数类型为布尔型,函数里可以有 return TRUE; return FALSE 之类的语句。
    下面是我遇到bool的场景:
int find(int* nums, int numsSize);
bool find132pattern(int* nums, int numsSize){    
	return find(nums, numsSize);
}
发布了13 篇原创文章 · 获赞 2 · 访问量 283

猜你喜欢

转载自blog.csdn.net/AuthurWhywat/article/details/104997147