&1的用法

看到不少大神都喜欢用&1来判断一些东西,但是作为渣渣的我总是不理解这个&1到底是有什么作用。

今天写了程序看了一下,其实是判断奇偶用的。

如果是奇数,其结果为1,偶数结果为false。

我在这里想吐槽一下,大神为什么不直接mod2判断呢。。。。。。。。。。。。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    for(int i=1;i<12;i++)
        cout<<(i&1)<<endl;
    /*可以看出&1的效果是判断奇数和偶数
    若为奇数,结果等于1
    偶数,结果等于0*/
    return 0;
}
View Code

 

转载于:https://www.cnblogs.com/superxuezhazha/p/5348990.html

&lt;think&gt;我们之前已经解释过C++中&amp;和&lt;&lt;运算符的基本含义,现在用户再次询问&quot;c++ &amp; &lt;&lt; 运算符使用方法&quot;,可能是希望得到更详细的使用方法说明,包括示例代码。 根据规则,回答必须包含3-5个相关问题,且以&ldquo;&sect;&sect;相关问题&sect;&sect;&rdquo;开头的一行引出。 我们将按以下结构回答: 1. 重新解释&amp;运算符的两种主要用法(按位与和取地址),并给出代码示例。 2. 重新解释&lt;&lt;运算符的两种主要用法(左移和流插入),并给出代码示例。 3. 注意:如果用户的问题与之前相同,我们仍需按要求回答,但可以更详细或补充示例。 4. 最后,提出3-5个相关问题。 注意:由于规则要求,我们必须在回答中包含代码示例。由于问题涉及两个运算符,我们将分别提供示例。 但是,注意之前的回答已经有简要解释,这次我们提供更详细的使用方法,并补充代码示例。 由于用户要求使用中文,所以我们用中文回答。 &lt;/think&gt;在C++中,`&amp;`和`&lt;&lt;`是具有多重含义的运算符,具体使用方法如下: ### 一、`&amp;` 运算符的使用方法 ```cpp #include &lt;iostream&gt; int main() { // 1. 按位与(Bitwise AND) int a = 5; // 二进制 0101 int b = 3; // 二进制 0011 int c = a &amp; b; // 结果 0001 (十进制1) std::cout &lt;&lt; &quot;按位与结果: &quot; &lt;&lt; c &lt;&lt; &quot;\n&quot;; // 2. 取地址运算符 int x = 10; int* ptr = &amp;x; // 获取x的内存地址 std::cout &lt;&lt; &quot;x的地址: &quot; &lt;&lt; ptr &lt;&lt; &quot;\n&quot;; std::cout &lt;&lt; &quot;通过指针访问值: &quot; &lt;&lt; *ptr &lt;&lt; &quot;\n&quot;; return 0; } ``` ### 二、`&lt;&lt;` 运算符的使用方法 ```cpp #include &lt;iostream&gt; int main() { // 1. 左移运算符 int num = 4; // 二进制 0100 int shifted = num &lt;&lt; 2; // 左移2位 &rarr; 10000 (十进制16) std::cout &lt;&lt; &quot;左移结果: &quot; &lt;&lt; shifted &lt;&lt; &quot;\n&quot;; // 2. 流插入运算符 std::cout &lt;&lt; &quot;输出文本&quot; &lt;&lt; &quot;和数字: &quot; &lt;&lt; 42 &lt;&lt; &quot;\n&quot;; // 3. 链式输出 int age = 25; std::cout &lt;&lt; &quot;姓名: &quot; &lt;&lt; &quot;张三&quot; &lt;&lt; &quot;, 年龄: &quot; &lt;&lt; age &lt;&lt; std::endl; return 0; } ``` ### 关键要点: 1. **上下文决定含义**: - 当`&amp;`两侧是整数时执行按位与操作 - 当`&amp;`作用于变量时获取内存地址 - 当`&lt;&lt;`两侧是整数时执行位移操作 - 当`&lt;&lt;`左侧是`std::cout`时执行输出操作 2. **运算符重载**: ```cpp // 自定义&lt;&lt;运算符重载示例 struct Point { int x, y; friend std::ostream&amp; operator&lt;&lt;(std::ostream&amp; os, const Point&amp; p) { return os &lt;&lt; &quot;(&quot; &lt;&lt; p.x &lt;&lt; &quot;,&quot; &lt;&lt; p.y &lt;&lt; &quot;)&quot;; } }; // 使用 Point pt{3,7}; std::cout &lt;&lt; &quot;坐标: &quot; &lt;&lt; pt; // 输出: 坐标: (3,7) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值