先说一句迟到的国庆快乐!
我突然觉得好迷茫,就是一种迷茫。 :sad:
位运算
一、n的二进制表示中第k位是几
第一步:将n右移k位,即 n >> k,把第k位移到最低位。
第二步:通过与运算获取最低位的值,即 n & 1,判断第k位是0还是1。
二、lowbit(x):返回x的最低位1及其后所有0所组成的数值
例如:
x = 1010(二进制) lowbit(x) = 10
x = 101000(二进制) lowbit(x) = 1000
原理:
lowbit(x) 的计算公式是 x & -x。
解释:
- 首先,-x 等于 ~x + 1,这是二进制表示中取反加一的结果(即补码)。
- 当我们将x与-x进行按位与运算时,结果会保留x中最低位的1,并将其他位清零。
举例说明:
x = 1010010101000
~x = 0101101010111
-x = ~x + 1 = 0101101011000(补码)
x & -x = 0000000001000
这表明lowbit(x) = 1000。
应用:
可以用lowbit(x)来计算x(二进制)中有多少个1。
2024年9月30日
突然之间觉得好迷茫,好累
2024年9月28日
最近在学react还有go。
在我的不懈坚持之下,终于让前后端通信了,可喜可贺。
:wink:
puts函数换行作用
puts("")
的作用是换行。
puts
函数是 C 标准库中的一个函数,用于将字符串输出到标准输出设备(通常是控制台),并在输出结束后自动换行。
其函数原型如下:
int puts(const char *str);
主要功能:
- 输出字符串:
puts
函数会将传入的字符串参数str
输出到标准输出(通常是终端或控制台)。 - 自动换行:与
printf
不同的是,puts
函数在输出完字符串后会自动添加一个换行符(\n
),因此你不需要手动加上换行。 - 返回值:如果输出成功,
puts
返回一个非负值。如果发生错误,返回EOF
(表示 End of File 或错误)。
示例:
puts("Hello, World!");
输出为:
Hello, World!
(并且会自动换行)
区别:
- 与
printf
不同,puts
只适用于输出 字符串,而不能像printf
那样支持格式化输出(例如整型、浮点型等)。 puts
函数在输出完毕后 自动换行,而printf
需要你手动添加换行符\n
。
所以puts("")
实际上是输出一个空字符串,然后自动换行。