c语言 中的 >> 是什么意思 int r=8; printf("%d/n",r>>1);

作者&投稿:溥祝 (若有异议请与网页底部的电邮联系)
程序段: int r=8 printf(‘’%d\n‘’,r>>1); 输出结果是什么? 怎么~

亲,您好~答案是4
因为8的二进制是1000,向右移一位就是0100,就是4哦~
望采纳~(*^__^*) 嘻嘻……

x>>1是对位来的,对照储存来看
r本来是8,二进制下就是
0000 0000 0000 1000(二字节)
进行移位操作就是把所有位置的数往右边移动,右边是数字1,所以是移动一位,也就是
0000 0000 0000 0100 (最前面的补充0)
相当于除以2。
题目应该是这样的吧:
int x=8;
printf("%d
",x>>1);
结果是
4

“>>”是C语言中的位操作符,在谭浩强的《C程序设计》中第12章讲位运算的里面有讲到有关位操作的知识。“r>>1“ 按位向右移动1位,8的二进制码:00001000右移后:00000100,记住是每一位都右移,如:a=163,二进制:10100011,a>>2后:00101000,移位后超出的自动去掉。另外还有“<<"左移位,"&"按位与,"|"按位或,"^"按位异或,"~"按位取反等操作符,这些操作符主要是在某些需要对二进制位进行操作的地方用到,很方便,比如某些时候你希望用一个二进制位表示一个状态或者其它什么信息时,把这些信息用一个位保存起来(每个位代表一个信息,节省空间,传输也方便,在上位机与下位机通信时经常会用一个字节的位来保存信息),而这个时候的某些操作就需要进行位运算,它会给你的程序带来很多方便。
你可以看看书,谭浩强那本是不错的C入门书籍,刚看位操作时可能不太好明白,因为不知道它能干嘛,平时写程序也很少用到,我学这个的时候就是这样,几乎是随便看看就没管它了,后来到工作中偶然一个机会用到了它,那时才对这个位操作有了一点认识,所以编程的事还要多实践、多练习,在实践中体会、理解。

楼主你好,>>运算符相当于向右移位,r>>1则相当于把a的值向右移1位,在高位前面补0,比如a是整数5的话,那么它的二进制计数为0000 1000,这时计算r>>1的结果为0000 0100,那么结果就是2了,其实移位运算也是相当于每次除2,而<<运算符相当于向左移位,如果向左移2位的话,在低位补0,就变成0010 0000,那么结果就是32,这也相当于每次移位乘2。
希望对楼主有所帮助!

>> 是右移的意思,r>>1表示把r向右移动一位,其效果相当于把r除以2,
所以这个程序的输出就是4

>>在c中是远远大于的意思! r>>1, 的意思是r远远大于1

右移, 8,换成二进制是b = 00001000,右移里1位是00000100,十进制是4。右移一位相当于除以2。


大冶市19335245476: c# ">>="这个符号是什么意思? -
鄞鬼康力: 右移赋值运算符.class MainClass8{ static void Main() { int a = 1000; a >>= 4; Console.WriteLine(a); }}/*Output:62*/

大冶市19335245476: C语言中&和*的所有用法、.... -
鄞鬼康力: *主要有2个作用:1用于指针,如:int *p,a=20;p=&a;而*P=20; 2 便是按位与运算. & 是取地址符号,还有便是引用,如:int a=2;int p=&a;

大冶市19335245476: C语言中的符号 & 和 | 是什么意思? -
鄞鬼康力: &: 在C语言中有两种意思,一种是2113取地址符,是单目运算5261符;另一种是位运算符4102,表示1653“按位与”,是双目运算符.|: 是位运算符,表示“按位或”. 资料扩展1、符号 & 和 | 这两个运算符都是二进制的按位操作符. &:...

大冶市19335245476: c程序中的&是代表什么意思? -
鄞鬼康力: 1. &代表地址符,比如scanf("%d",&a);这里代表输入一个整数,存入a的地址中,即a=输入数2.&代表位的相与运算,运算规则:0&1=0、0&0=0、1&0=0、1&1=1 比如二进制运算: 10011001& 10010000= 10010000

大冶市19335245476: C语言中&是什么意思?a&b怎么理解? -
鄞鬼康力: &: 在C语言中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符. a&b表示啊a和b按位进行与运算. &后面是个变量.每个变量对应一块存储空间.每个存储空间有一个编号,也就是地址,&...

大冶市19335245476: &在c语言中什么意思 -
鄞鬼康力: 主要有两个意思: 1. 取地址符,用在指针表达式或输出变量地址时 例如 int a; &a就是表示变量a在内存中地址 2. 二进制位与位运算符 1&1=1 0&0=0 拓展资料:C语言主要特点: 1. C语言是高级语言.它把高级语言的基本结构和语句与低级...

大冶市19335245476: C语言函数括号中的& *分别表示什么意思? -
鄞鬼康力: 函数声明/定义里, * 表示指针. C++ 语言里 &表示引用.C 语言里 没有 “引用”一说. 例如: 声明 int fun(int a, int *b); 参数 *b 是指针. 调用 fun(a, &b); &b 是实参,表示b 的地址. C++ 语言里 getelem(lintlist &l,int e,int *n) -- & 表示引用, 参数 *n 是指针.

大冶市19335245476: C语言中&是什么意思 -
鄞鬼康力: 1. "按位与" 运算符. 按位与运算符"&"是双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1 ,否则为0.参与运算的数以补码方式出现. 例如:9&5可写算式如下: 00001001 (9的二进...

大冶市19335245476: C语言中"&&"的意思和用法? -
鄞鬼康力: &是取地址符,就是获取地址,比如 int a; 那么 &a,就是获取 a 的地址, &&是“且”的意思,比如 int b; 那么 b>2&&b<3 就是b>2并且b<3

大冶市19335245476: C语言中的运算符的&与&& 和 |与||有什么区别,用在什么地方 -
鄞鬼康力: &和|是位运算.&&和||表示逻辑关系,&&和||表达式最终的值只可能是真(1)或者假(0),而位运算表达式的值不限于0和1 两者在特定情况下的效果是相同的.操作方法如下: 1、首先这里用到字符的ascii码,A的ASCII码为65,之后用scanf...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网