c语言与怎么算
Ⅰ c语言中按位或,与,非是怎么用的,怎么运算
位运算符
C提供了六种位运算运算符;这些运算符可能只允许整型操作数,即char、short、int和long,无论signed或者unsigned。
&
按位AND
|
按位OR
^
按位异或
<<
左移
>>
右移
~
求反(一元运算)
按位与操作&通常用于掩去某些位,比如
n
=
n
&
0177;
使得n中除了低7位的各位为0。
按位或操作|用于打开某些位:
x
=
x
|
SET_ON;
使得x的某些SET_ON与相对的位变为1。
按位异或操作^使得当两个操作数的某位不一样时置该位为1,相同时置0。
应该区分位操作符&、|与逻辑操作符&&、||,后者从左到右的评价一个真值。比如,如果x为1、y为2,那么x
&
y为0,而x
&&
y为1。
移位运算符<<和>>将左侧的操作数左移或者右移右操作数给定的数目,右操作数必须非负。因此x
<<
2将x的值向左移动两位,用0填充空位;这相当于乘4。右移一个无符号数会用0进行填充。右移一个带符号数在某些机器上会用符号位进行填充(“算数移位”)而在其他机器上会用0进行填充(“逻辑移位”)。
单目运算符~对一个整数求反;即将每一个1的位变为0,或者相反。比如
x
=
x
&
~077
将x的后六位置0。注意x
&
~077的值取决于字长,因此比如如果假设x是16位数那么就是x
&
0177700。这种简易型式并不会造成额外开销,因为~077是一个常数表达式,可以在编译阶段被计算。
作为一个使用位操作的实例,考虑函数getbits(x,p,n)。它返回以p位置开始的n位x值。我们假设0位在最右边,n和p是正数。例如,getbits(x,4,3)返回右面的4、3、2位。
/*
getbits:
返回从位置p开始的n位
*/
unsigned
getbits(unsigned
x,
int
p,
int
n)
{
return
(x
>>
(p+1-n))
&
~(~0
<<
n);
}
表达式x
>>
(p+1-n)将需要的域移动到字的右侧。~0是全1;将其左移n为并在最右侧填入0;用~使得最右侧n个1成为掩码。
Ⅱ c语言怎么算
C语言怎么计算一个数有多少位的方法:
输入待计算的数x
定义一个数位的变量int n=0;
循环,x每次缩小10倍,n=n+1; 最终x会变成0,循环结束
输出n值
代码:
#include <stdio.h>
void main()
{
int x,m,n=0;
printf("input x: ");scanf("%d", &x );
m=x; //备份原数,供输出用
do {
n++;
x /= 10 ;
} while( x>0 );
printf("%d 是%d位数\n", m, n );
}
Ⅲ 请问在单片机C语言编程中这个“与”运算怎么用
&就是按位与,就是两个变量位都为1,就是1,如果不同时是1,就为0;
temp=temp&0xf0; 高四位的状态由你的输入状态决定,低四位被直接置为0
Switch语句就是依据你的temp值进行匹配,将按键状态传入temp变量,然后通过case分支,匹配不同的按键状态
Ⅳ C语言中与或非的运算方法是什么
&&与运算时,只有两边同时成立时为真的,具有短路效应,即若左边为假时,就不再判断右边的结果了!
\\或运算时两边只要有一个成立就是真的,也具有短路效应,即若左边为真时,就不再判断右边的结果了!
!非运算,结果取反!
Ⅳ 求c语言,与,或,非运算函数
按位“与”、“或”和“非”运算是C/C++中标准运算符,不需要另外编写函数。
与运算: c = a & b;
或运算: c = a | b;
非运算: ~a;
非运算: ~b
另外,!是逻辑运算符,对于a,如果a 为 0,!a = 1,如果a 不为 0,则!a = 0。
Ⅵ C语言按位与怎么运算
计算两个数x,y相与的结果。
代码写作x&y
先将x与y分别写成二进制bit形式~~
例如计算10&30
10二进制为1010
30为11110
然后从低位开始,每个bit分别作与运算~~
其中bit的与运算,除了1&1=1外,其余组合结果均为0
故10&30=01010,即1010。。。
Ⅶ C语言&&运算怎么算
按位与,与运算就是全1得1,其他都得0
5&&2=0101&&0010=0000=0
7&&5=0111&&0101=0101=5
例:
#include<stdio.h>
intmain(void){
inta,b,c;
A:printf("abc ");
scanf("%d%d%d",&a,&b,&c);
if(a||b&&c)
printf("(%d||%d&&%d)=OK! ",a,b,c);
else
printf("(%d||%d&&%d)=Error! ",a,b,c);
getchar();
printf("############ ");
gotoA;
return0;
}
(7)c语言与怎么算扩展阅读
C语言运算符
“圆方括号、箭头一句号”指的是第1级的运算符。其中圆方括号很明显“()、[]”,箭头指的是指向结构体成员运算符“->”,句号指的是结构体成员运算符“.”;
“八位与,七位异,六位或”其中八位与指的是第8级的按位与运算符“&”,七位异指的是第9级的按位异或运算符“^”,六位或指的是第10级的按位或运算符“|”;
“五与,四或”指的是第11级、第12级的逻辑与运算符“&&”和逻辑或运算符“||”;