🌈个人主页:Rookie Maker
🔥 系列专栏:Rookie review
🏆🏆关注博主,随时获取更多关于IT的优质内容!🏆🏆
😀欢迎来到小田代码世界~
😁 喜欢的小伙伴记得一键三连哦 ૮(˶ᵔ ᵕ ᵔ˶)ა
前言
一、三目运算符
二、与运算(&)、或运算(|)、异或运算(^)
三.sort排序
四.左移和右移
前言
我们在学习的过程不可能做到学到面面俱到,总会有一些细致的知识遗漏,新开的专题"杂文"会记录一些我在学习的过程中的遗忘的部分,或者是觉得应该拿出来学习和二刷的知识点
一、三目运算符
布尔表达式?表达式1:表达式2
🚀条件赋值:判断奇偶性:
#include<Stdio.h>
int main()
{bool m = true;bool n = false;a%2==0?m:n
}
🚀条件赋值:简化代码:替换了传统的if.....else语句
🚀多级条件:嵌套
👨🚀优点
- 代码可读性降低、
- 复杂度增加
- 性能下降
二、与运算(&)、或运算(|)、异或运算(^)
二进制 | 八进制 | 十进制 | 十六进制 |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
10 | 2 | 2 | 2 |
11 | 3 | 3 | 3 |
100 | 4 | 4 | 4 |
101 | 5 | 5 | 5 |
110 | 6 | 6 | 6 |
111 | 7 | 7 | 7 |
1000 | 10 | 8 | 8 |
1001 | 11 | 9 | 9 |
1010 | 12 | 10 | A |
1011 | 13 | 11 | B |
1100 | 14 | 12 | C |
1101 | 15 | 13 | D |
1110 | 16 | 14 | E |
1111 | 17 | 15 | F |
10000 | 20 | 16 | 10 |
10001 | 21 | 17 | 11 |
10010 | 22 | 18 | 12 |
10011 | 23 | 19 | 13 |
10100 | 24 | 20 | 14 |
10101 | 25 | 21 | 15 |
10110 | 26 | 22 | 16 |
10111 | 27 | 23 | 17 |
11000 | 30 | 24 | 18 |
11001 | 31 | 25 | 19 |
11010 | 32 | 26 | 1A |
11011 | 33 | 27 | 1B |
11100 | 34 | 28 | 1C |
11101 | 35 | 29 | 1D |
11110 | 36 | 30 | 1E |
11111 | 37 | 31 | 1F |
100000 | 40 | 32 | 20 |
100001 | 41 | 33 | 21 |
100010 | 42 | 34 | 22 |
100011 | 43 | 35 | 23 |
100100 | 44 | 36 | 24 |
100101 | 45 | 37 | 25 |
100110 | 46 | 38 | 26 |
100111 | 47 | 39 | 27 |
101000 | 50 | 40 | 28 |
101001 | 51 | 41 | 29 |
101010 | 52 | 42 | 2A |
101011 | 53 | 43 | 2B |
101100 | 54 | 44 | 2C |
101101 | 55 | 45 | 2D |
101110 | 56 | 46 | 2E |
101111 | 57 | 47 | 2F |
110000 | 60 | 48 | 30 |
110001 | 61 | 49 | 31 |
110010 | 62 | 50 | 32 |
110011 | 63 | 51 | 33 |
110100 | 64 | 52 | 34 |
110101 | 65 | 53 | 35 |
110110 | 66 | 54 | 36 |
110111 | 67 | 55 | 37 |
111000 | 70 | 56 | 38 |
111001 | 71 | 57 | 39 |
111010 | 72 | 58 | 3A |
111011 | 73 | 59 | 3B |
111100 | 74 | 60 | 3C |
111101 | 75 | 61 | 3D |
111110 | 76 | 62 | 3E |
111111 | 77 | 63 | 3F |
1000000 | 100 | 64 | 40 |
1000001 | 101 | 65 | 41 |
1000010 | 102 | 66 | 42 |
1000011 | 103 | 67 | 43 |
1000100 | 104 | 68 | 44 |
1000101 | 105 | 69 | 45 |
1000110 | 106 | 70 | 46 |
1000111 | 107 | 71 | 47 |
1001000 | 110 | 72 | 48 |
1001001 | 111 | 73 | 49 |
1001010 | 112 | 74 | 4A |
1001011 | 113 | 75 | 4B |
1001100 | 114 | 76 | 4C |
1001101 | 115 | 77 | 4D |
1001110 | 116 | 78 | 4E |
1001111 | 117 | 79 | 4F |
1010000 | 120 | 80 | 50 |
1010001 | 121 | 81 | 51 |
1010010 | 122 | 82 | 52 |
1010011 | 123 | 83 | 53 |
1010100 | 124 | 84 | 54 |
1010101 | 125 | 85 | 55 |
1010110 | 126 | 86 | 56 |
1010111 | 127 | 87 | 57 |
1011000 | 130 | 88 | 58 |
1011001 | 131 | 89 | 59 |
1011010 | 132 | 90 | 5A |
1011011 | 133 | 91 | 5B |
1011100 | 134 | 92 | 5C |
1011101 | 135 | 93 | 5D |
1011110 | 136 | 94 | 5E |
1011111 | 137 | 95 | 5F |
1100000 | 140 | 96 | 60 |
1100001 | 141 | 97 | 61 |
1100010 | 142 | 98 | 62 |
1100011 | 143 | 99 | 63 |
1100100 | 144 | 100 | 64 |
异或运算:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
举例:
3^5=
3用二进制位表示: 0000 0011
5用二进制位表示: 0000 0101
异或:相同为0,相异为1
则为:00000110,由二进制的表示方法可知表达的为6
或运算:如果a,b的值相同的则为0,但是遇见了1结果都是1
举例:
3|5=
3用二进制位表示: 0000 0011
5用二进制位表示: 0000 0101
或:遇真为真(0),遇1为1
则为:00000111,由二进制的表示方法可知表达的为7
与运算:如果a,b的值不同则为1,a,b如果值是相同的则为0.但是,两个同时为1,结果是1
举例:
3|5=
3用二进制位表示: 0000 0011
5用二进制位表示: 0000 0101
与:遇假为假,两个同时为1,结果为1,否则为0
则为:000000001,由二进制的表示方法可知表达的为1
三.sort排序
🚀sort()函数是类似于快速排序的方法,时间复杂度为n*log2(n),执行效率较高。
🚀在C++中,排序的基本形式通常使用STL(Standard Template Library)中的sort
函数。这个函数定义在<algorithm>
头文件中,它可以对数组或容器进行排序。
👨🚀举例:
#include <iostream>
#include <vector>
#include <algorithm> int main() { // 创建一个整数向量 std::vector<int> v = {5, 2, 9, 1, 5, 6}; // 使用sort函数进行排序 std::sort(v.begin(), v.end()); // 打印排序后的向量 for (int i : v) { std::cout << i << ' '; } return 0;
}
四.左移和右移
在C++中,左移(<<
)和右移(>>
)操作符用于对整数的二进制表示进行位移操作。左移操作将整数的所有位向左移动指定的位数,右移操作将整数的所有位向右移动指定的位数。左移和右移操作在低位(右侧)或高位(左侧)留下的空位通常会用0填充。
#include <iostream>
int main() { unsigned int a = 5; // 二进制表示: 0101 unsigned int b = a << 2; // 左移2位,变为: 10100 (十进制中的20) std::cout << "a: " << a << std::endl; // 输出: a: 5 std::cout << "b: " << b << std::endl; // 输出: b: 20 return 0;
}
#include <iostream>
int main() { unsigned int a = 20; // 二进制表示: 10100 unsigned int b = a >> 2; // 右移2位,变为: 00101 (十进制中的5) std::cout << "a: " << a << std::endl; // 输出: a: 20 std::cout << "b: " << b << std::endl; // 输出: b: 5 int c = -20; // 对于带符号整数,二进制表示取决于系统(可能是补码形式) int d = c >> 2; // 右移操作,符号位可能保持不变(算术右移) std::cout << "c: " << c << std::endl; // 输出c的值,可能是-20 std::cout << "d: " << d << std::endl; // 输出d的值,取决于c的二进制表示和系统的右移行为 return 0;
}
🎁🎁🎁今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是我前进的动力!