c++程序中,右移位符>>表示什么含义??比如说运算18>>3是什么含义??

c++程序中,右移位符>>表示什么含义??比如说运算18>>3是什么含义??,第1张

以大写数字表示数制,则

(18)十 =(10010)二

10010->右移三位=00010

(00010)二=(2)十

可见,执行移位 *** 困敏作后,18变成了2,相当汪昌枝于迅裂 18除以2的三次方的结果下取整。

51单片机C语言实现循环8个流水灯左移三次,后右移三次。

例程:

#include<reg51.h>  //51单片机头文件

#include <intrins.h> //包含有左右循环移位子函数的库

#define uint unsigned int    //宏定义

#define uchar unsigned char  //宏定义

sbit beep=P2^3

void delay(uint z)  //延时函数,z的取值为这个函数的延时ms数,如delay(200)大约延时200ms.

{                    //delay(500)大约延时500ms.

    uint x,y

    for(x=zx>0x--)

        for(y=110y>0y--)    

}

void main()            //主函数

{

    uchar a,i,j

    while(1)        //大循环

    {

        a=0xfe     //赋初值

        for(j=0j<3j++) for(i=0i<8i++)   //左移三次

        {

            P1=a       //点亮小灯

            beep=0    宏岁知 //开启蜂鸣器

            delay(50) //延时50毫秒

            beep=1     //关闭蜂鸣器

            delay(50)  //再延时50毫秒

            a=_crol_(a,1) //将a变量循环左移一位

        }

    蔽消    a=0x7f

       for(j=0j<3j++) for(i=0i<8i++)  //右移三次

        {

            P1=a      雀戚 //点亮小灯

            beep=0     //开启蜂鸣器

            delay(50) //延时50毫秒

            beep=1     //关闭蜂鸣器

            delay(50)   //再延时50毫秒

            a=_cror_(a,1) //将a变量循环右移一位

        }        

    }

}

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。

算法是将原数右移size-n位,所得的值瞎塌中磨山与原数左移n位的值按位衫喊或。 下面是测试程序,测试正确。(上述算法在函数fun()中) #include unsigned int fun(unsigned int i, int n) { n%=sizeof(i)*8/*处理n大于31的情况*/ return isizeof(i)*8-n} m...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8205120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存