计算机c语言言是什么意思

在C语言中&&是什么意思?_百度知道
在C语言中&&是什么意思?
提问者采纳
先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用&&运算符.例如:int i = 1;i = i && 2;
//把i里的值左移2位也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成000...0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能导致符号变化,下面解释原因)需要注意的一个问题是int类型最左端的符号位和移位移出去的情况.我们知道,int是有符号的整形数,最左端的1位是符号位,即0正1负,那么移位的时候就会出现溢出,例如:int i = 0x; //16进制的,为2进制的...0000i = i && 1;那么,i在左移1位之后就会变成0x,也就是2进制的100000...0000,符号位被置1,其他位全是0,变成了int类型所能表示的最小值,32位的int这个值是-,溢出.如果再接着把i左移1位会出现什么情况呢?在C语言中采用了丢弃最高位的处理方法,丢弃了1之后,i的值变成了0.左移里一个比较特殊的情况是当左移的位数超过该数值类型的最大位数时,编译器会用左移的位数去模类型的最大位数,然后按余数进行移位,如:int i = 1, j = 0x; //设int为32位i = i && 33;
// 33 % 32 = 1 左移1位,i变成2j = j && 33;
// 33 % 32 = 1 左移1位,j变成0,最高位被丢弃在用gcc编译这段程序的时候编译器会给出一个warning,说左移位数&=类型长度.那么实际上i,j移动的就是1位,也就是33%32后的余数.在gcc下是这个规则,别的编译器是不是都一样现在还不清楚.总之左移就是: 丢弃最高位,0补最低位再说右移,明白了左移的道理,那么右移就比较好理解了.右移的概念和左移相反,就是往右边挪动若干位,运算符是&&.右移对符号位的处理和左移不同,对于有符号整数来说,比如int类型,右移会保持符号位不变,例如:int i = 0x;i = i && 1;
//i的值不会变成0x,而会变成0xc0000000就是说,符号位向右移动后,正数的话补0,负数补1,也就是汇编语言中的算术右移.同样当移动的位数超过类型的长度时,会取余数,然后移动余数个位.
负数 &&5(假设字长为8位),则得到的是
总之,在C中,左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变.实际应用中可以根据情况用左/右移做快速的乘/除运算,这样会比循环效率高很多. 例:C语言中左移&&表示乘以2,右移&&表示除以2,这是由计算机工作原理导致的!但是要是7,二进制数为0111,右移一位得3.5,但是右移之后二进制数变成0011,是3。不一样啊,怎模解释呢??答:移位操作符的两个操作数必须是整型的。整个移位表达式的值的类型也是整型的,而且,左移位操作符与右移位操作符的运算并不对称。0111右移一位是把最后一位的1去掉,左边补个0,得0011,转换为十进制是3,这是正确的。并不等同于除以2 。
提问者评价
其他类似问题
按默认排序
其他5条回答
是一种符号重载,你可以让他干你想做的任何事。在标准输出中,是输出到控制台的插入符,如cout&&i; 表示将i的值输出到标准输出设备。
&&是左移操作符,将数字的二进制形式按位左移,末尾补零例如:对于unsigned int x=015,x&&1,x&&2,x&&3的分析。unsigned int x=015,x=015,用0打头的说明是八进制数,由于后面要进行左移操作,所以转换为二进制看比较方便。015(八进制)=1101(二进制)&&:这个是左移操作符,按位左移,末尾补零&&:这个是右移操作符,按位右移,前端补零x&&1:左移一位,1101(二进制)左移一位变为11010(二进制),11010(二进制) = 26(十进制)x&&2:左移两位,1101(二进制)左移两位变为110100(二进制),110100(二进制) = 52(十进制)x&&3:左移三位,1101(二进制)左移三位变为1101000(二进制),1101000(二进制) = 104(十进制)现在你应该也看出来了,左移N位就相当于原数乘以2的N次方
向左移位,相当于X2
位移操作符
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言 这是什么意思??_百度知道
C语言 这是什么意思??
#include &absacc.h&#define XC1 XBYTE[0x8010]#define XC2 XBYTE[0x8011]main(){
char t=XC1;
while(1);}
c语言的相关知识
按默认排序
其他2条回答
交换xc1和xc2的值
将变量XC1和XC2的值交换,然后 while(1); 语句无限循环
您可能关注的推广回答者:回答者:回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁已有天涯账号?
这里是所提的问题,您需要登录才能参与回答。
"天涯问答"是天涯社区旗下的问题分享平台。在这里您可以提问,回答感兴趣的问题,分享知识和经历,无论您在何时何地上线都可以访问,此平台完全免费,而且注册非常简单。
c语言的c是什么意思
c语言的c是什么意思
09-11-19 &匿名提问 发布
您好C语言的原型ALGOL 60语言。(也成为A语言) 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。 所以就简称为C语言
请登录后再发表评论!
你好,C语言中的C定义如下:  C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。  C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DBASE Ⅲ PLUS、DBASE Ⅳ都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。
请登录后再发表评论!已有天涯账号?
这里是所提的问题,您需要登录才能参与回答。
"天涯问答"是天涯社区旗下的问题分享平台。在这里您可以提问,回答感兴趣的问题,分享知识和经历,无论您在何时何地上线都可以访问,此平台完全免费,而且注册非常简单。
^在C语言中是什么意思?
^在C语言中是什么意思?
09-08-16 & 发布
请登录后再发表评论!什么是c语言_百度知道
什么是c语言
提问者采纳
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。
其他类似问题
c语言的相关知识
其他2条回答
你说的应该是二级C语言吧,是个等级考试。这个说的挺详细的,你看看吧。
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 c语言是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信