25-01-01-3280. 将日期转换为二进制表示
3280. 将日期转换为二进制表示 - 力扣(LeetCode)
c++
1 |
|
bitset
bitset主要用于处理二进制数据,bitset为模板类,初始化bitset<8>表示一个包含8个二进制位的容器。
初始化
- 整数初始化
1
std::bitset<8> b1(42); //b1 = 00101010
- 字符串初始化
1
std::bitset<8> b2("10101010"); //b2 = 10101010
- 默认构造,所有位初始化为0
1
std::bitset<8> b3; //b3 = 00000000
访问和操作位
- 获取特定位置的位:
1
bool bit = b1[2]; // 获取第 2 位的值,b1 = 00101010,bit = 1
- 修改特定位置的位:
1
b1[2] = 0; // 设置第 2 位为 0,b1 = 00100010
- 设置所有位为 1 或 0:
1
2b1.set(); // 设置所有位为 1,b1 = 11111111
b1.reset(); // 设置所有位为 0,b1 = 00000000 - 切换某一位:
1
b1.flip(3); // 翻转第 3 位,b1 = 00001000
- 获取位集的大小(即位的数量):
1
2
3
4
5size_t size = b1.size(); // size = 8`
```
* 获取位集中 1 的个数:
```cpp
size_t count = b1.count(); // 返回 b1 中 1 的个数 - 检查是否所有位都为 1:
1
bool allSet = b1.all(); // 返回 false,因为 b1 不是所有位都为 1
- 检查是否有任意一位为 1:
1
bool anySet = b1.any(); // 返回 true,如果 b1 中有任意一位为 1
- 检查是否所有位都为 0:
1
bool noneSet = b1.none(); // 返回 true 如果所有位都为 0
- 转换为字符串或数字:
1
std::string str = b1.to_string(); // "00000000" unsigned long num = b1.to_ulong(); // 转换为 unsigned long 类型
std::string::substr
从给定位置截取给定长度的字符串。
- 原型
1
std::string substr(size_t pos = 0, size_t len = npos) const;
- pos: 子字符串的起始位置,默认值是 0,表示从字符串的开头开始。
- len: 要提取的子字符串的长度,默认值是
npos
,表示一直提取到字符串的末尾。 - 返回值:
返回一个新的字符串,包含从位置pos
开始的长度为len
的子字符串。如果len
超出了剩余的字符数,则会提取到字符串的末尾。
std::string::find
find
函数用于查找一个子字符串或字符在字符串中首次出现的位置。
- 原型
1
2size_t find(const std::string& str, size_t pos = 0) const;
size_t find(char ch, size_t pos = 0) const;
- str: 要查找的子字符串。
- ch: 要查找的字符。
- pos: 从位置
pos
开始查找,默认值是 0,表示从字符串的开头开始查找。 - 返回值:
- 如果找到,返回子字符串或字符首次出现的位置(索引)。这是一个
size_t
类型的值。 - 如果未找到,返回
std::string::npos
,表示没有找到该子字符串或字符
- 如果找到,返回子字符串或字符首次出现的位置(索引)。这是一个
python
1 |
|
列表推导式
[表达式 for 变量 in 列表]
[out_exp_res for out_exp in input_list]
或者
[表达式 for 变量 in 列表 if 条件]
[out_exp_res for out_exp in input_list if condition]
Rust
1 |
|
25-01-01-3280. 将日期转换为二进制表示
https://www.limesea.world/2025/01/88518523c181.html