!
如何运作,()
之前为什么n & 1
以及为什么#include <stdio.h>
int even(int n)
{
return !(n & 1);
}
int main()
{
int pom, count=0,n;
while(scanf("%d", &n))
{
if(even(n))
{
count++;
}
}
printf("%d", count);
return 0;
}
?
import pandas as pd
from sqlalchemy.sql import text
ages = (25, 26, 27)
placeholders = ', '.join([':param'+str(i) for i in range(len(ages))])
paramdict = {'param'+str(i): ages[i] for i in range(len(ages))}
query = text("SELECT * FROM users WHERE age IN ({})".format(placeholders))
# SELECT * FROM users WHERE age IN (:param0, :param1, :param2)
df = pd.read_sql_query(query, conn, params=paramdict)
答案 0 :(得分:1)
!
是一个逻辑NOT运算符。当你传递一个零值时,你会得到一个;如果你传递非零值,你就会回零。n & 1
使用int
屏蔽1
,0000000000001
具有二进制表示!(n & 1)
,即只设置最后一位现在,您可以看到公式return n % 2 == 0;
如何区分偶数和奇数。
判断数字是否均匀的另一种常见方法是通过2来检查可分性:
getRoute
答案 1 :(得分:1)
此函数使用按位&
运算符来检查某些内容是否均匀。数字1
以二进制表示为0001
。如果在{32}二进制文件中存在14
为1110
的偶数,则114 & 1
将为0
。这是因为两个数字之间没有公共位
1 1 1 0 - 14
0 0 0 1 - 1
0 0 0 0 - 0 (No common bit)
将!
反转结果,使得0
变为简洁的15
并将其变为真正的整数。但是,如果数字是奇数,例如二进制为1111
的{{1}},则会有一个公共数字和1111 & 1 = 1
。这里显示
1 1 1 1 - 15
0 0 0 1 - 1
0 0 0 1 - 1
和!1
将真实1
变成了虚假的0
。规则是所有偶数& 1
将为0
,因为从不存在公共位,但所有奇数& 1
将为1
,因为始终存在公共位。当!
反转按位运算符的结果时,您可以确定数字是偶数还是奇数。
编辑:我意识到反转一词可能含糊不清。我的意思是反转是它做到了这一点。如果!n
,则0
为n != 0
,0
时n == 0
为<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
local:MvxBind="Text Login" />
public string Login
{
get { return _login; }
set { SetProperty(ref _login, value); }
}
。