c语言中<<是什么运算符

#include<stdio.h>voidprintb(int,int);intmain(){intx;printf("Inputnumber:");scanf("%d"... #include<stdio.h>
void printb(int,int);
int main()
{
int x;printf("Input number:");
scanf("%d",&x);
printf("number of decimal form:%d\n",x);
printf(" it's binary form:");
printb(x,sizeof(int)*8); /*x:整数 sizeof(int):int型在内存中所占的字节数
sizeof(int)*8:int型对应的位数*/
putchar('\n');
}

void printb(int x,int n)
{
if(n>0)
{
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); /*输出第n位*/
printb(x,n-1); /*归调用,输出x的后n-1位*/
}
}
后面那个<<和>>里的是什么意思?不太懂,能给我解释一下吗,谢谢各位高手!
展开
 我来答
苏嘉爱娱乐
高粉答主

2019-12-12 · 各种八卦综艺娱乐影视剧齐分享
苏嘉爱娱乐
采纳数:90 获赞数:125202

向TA提问 私信TA
展开全部

>>是右移运算符,移位运算符的一种:程序设计中,位操作运算符的一种。

C语言中位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。

位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。

移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关。若是不带符号数,则补入的数全部为0;若是带符号数,则补入的数全部等于原数的最左端位上的原数(即原符号位)。

扩展资料

优先级:

语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。

这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

参考资料来源:百度百科-右移运算符

闳竹青谏婵
2019-11-17 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:34%
帮助的人:822万
展开全部
<
小于
>
大于
<>
不存在,vb之类的语言里
,它是不等于
!=
不等于
<>
还有一个用处
,是宏命令中的,
#include

用include命令包含头文件时会用到
注意
宏命令不是C的东西
,是编译器的东西
#include

从编译器的的include目录查找xxx.h
#include
"xxx.h"
先从源文件所在的文件夹找,找不到再到编译器的的include目录查找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中淑巢弼
2019-02-21 · TA获得超过4369个赞
知道大有可为答主
回答量:3144
采纳率:28%
帮助的人:205万
展开全部
1.
||
是逻辑运算中的“或者”,逻辑关系为:真||假=真
真||真=真
假||真=真
假||假=假
c中运算值以1代表真,0代表假
2.由于真||任何值都是真,所以||也被称为短路运算符,只要前面一个值是真,后面部分就不计算了,比如:
int
x=0,y=0,z=0;
++x||y--||z++;
由于++x后的值为1,||后面的值不计算也是1了,所以y仍然=0,同理z=0,相当于后面的y和z被短路掉了,故称短路运算符
3.
||常跟&&(逻辑与)对比出现,注意其区别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牵云德呼茶
2019-07-01 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:24%
帮助的人:956万
展开全部
(结构体、类、共同体等)取成员运算符,例如,
p->
相当于:
(*p).
p一定是一个指针类型。
举个例子说吧:
struct
student
{
char
name[20];
int
age;
};
你定义个数据:
struct
student
*p;
那么,你就可以这个取它的成员了:
(*p).name
(*p).age
这个等于如下的写法:
p->name
p->age
应该清楚了吧?看答案怎么样?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闭眼数十年
2021-01-14
知道答主
回答量:2
采纳率:0%
帮助的人:1025
展开全部
1、优先级1级
结合方向 左结合(自左至右)
( ) 圆括号
[ ] [1] 下标运算符
-> 指向结构体成员运算符
. 结构体成员运算符 [1] (请注意它是一个实心圆点)

2、优先级2级
结合方向 右结合(自右至左)单目运算符
! 逻辑非运算符
~ 按位取反运算符
++ 自增运算符
-- 自减运算符
-负号运算符
(类型) 类型转换运算符
* 指针运算符
& 地址与运算符
sizeof 长度运算符

3、优先级3级
结合方向 左结合 双目运算符
* 乘法运算符
/ 除法运算符
% 取余运算符

4、优先级4级
结合方向 左结合 双目运算符
+ 加法运算符
- 减法运算符

5、优先级5级
结合方向 左结合 双目运算符
<< 左移运算符
>> 右移运算符

6、优先级6级
结合方向 左结合 双目运算符
<、<=、>、>= 关系运算符

7、优先级7级
结合方向 左结合 双目运算符
== 等于运算符 (判断)
!= 不等于运算符(判断)

8、优先级8级
结合方向 左结合 双目运算符
& 按位与运算符

9、优先级9级
结合方向 左结合 双目运算符
^ 按位异或运算符

10、优先级10级
结合方向 左结合 双目运算符
| 按位或运算符 举例:0xfe|0xef 即为1111 1110 与1110 1111按位或运算则答案为:1111 1111 即0xff。

11、优先级11级
结合方向 左结合 双目运算符
&& 逻辑与运算符

12、优先级12级
结合方向 左结合 双目运算符
|| 逻辑或运算符

13、优先级13级
结合方向 右结合 三目运算符
? : 条件运算符

14、优先级14级
结合方向 右结合 双目运算符
= 赋值运算符
+ = 加后赋值运算符 如s+=1表示s=s+1
- = 减后赋值运算符 如s-=1表示s=s-1
* = 乘后赋值运算符
/ = 除后赋值运算符
% = 取模后赋值运算符
< <= 左移后赋值运算符
>>=右移后赋值运算符
&= 按位与后赋值运算符
^=按位异或后赋值运算符
|= 按位或后赋值运算符

15、优先级15级
结合方向 左结合
, 逗号运算符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(13)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式