查看: 764|回复: 0

[原创图文] C语言学习第七天 位运算练习

[复制链接]

19

主题

28

帖子

3

精华

高级会员

Rank: 12Rank: 12Rank: 12

学币
229
荣耀
0
rank
0
违规
0
发表于 2020-11-29 18:31:14 | 显示全部楼层 |阅读模式
本帖最后由 鸦领主 于 2020-11-29 18:31 编辑

1.输入一个年份判断是否是闰年(闰年判定方法:能被400整除。或者能被4整除但不能被100整除。)
#include<stdio.h>
#include<Windows.h>
int main()
{
    int i;
    while (1)
    {
        system("cls");
        printf("请输入一个年份:");
        scanf_s("%d", &i);
        if (i %4==0 && i %100!=0 || i % 400==0)// i余4余0能被整除而且i余100有余数不能被整除或
            printf("%d是闰年\n", i);              //i余400有余数能被整除  俩个条件符合一个就可以
        else
            printf("%d不是闰年\n", i);
        system("pause");
    }
    return 0;


}

C语言学习第七天 位运算练习

C语言学习第七天 位运算练习


2. 使用位运算和循环,做出一个32位十进制转换二进制
#include<stdio.h>
#include<Windows.h>
int main()
{
    while (1)
    {
      system("cls");
      unsigned int i;
      printf("请输入一个42亿以内的数字:");
      scanf_s("%d", &i);
      printf("转换为二进制的结果为:");
      int n = 32;
       while (n>0)
       {
         n--; // 循环32次的n为31-0
         int t;
         t = (i >> n) % 2; //循环32次i>>n=i/2的31次方%2,i>>n=i/2的30次方%2.......
         printf("%d", t);
         
       }
       printf("\n");
       system("\npause");
    }
    return 0;
    
}

C语言学习第七天 位运算练习

C语言学习第七天 位运算练习


3.分别用if和?:对比出a b  c三个变量哪个大(变量值自己设定)
if:
#include<stdio.h>
int main()
{
    int a=40, b=30, c=50;
    int n = 0;
    if (a > b)
        n = a;
    else
        n = b;
    if (n < c)
        n = c;
    printf("%d", n);
}

C语言学习第七天 位运算练习

C语言学习第七天 位运算练习

"?:" :
#include<stdio.h>
int main()
{
    int a=40, b=30, c=50;
    int t = a > b ? a : b;
    t=t > c ? t: c;
    printf("%d", t);
    return 0;
}

C语言学习第七天 位运算练习

C语言学习第七天 位运算练习


4.求1到15的阶乘(1*2*3*4*5*6...*15)
#include<stdio.h>
int main()
{
    unsigned __int64 i = 1; //unsigned int 为42亿, unsigned __int64 为42亿*42亿
    int n = 2;
    while (n<16)//循环14次
    {
        i = i * n; //第一次i(1)*n(2)=2, 第二次i(2)*n(3)=6, 第三次i(6)*n(4)=24..........
        printf("*%d的结果为:%I64u\n",n ,i);
        n++;
    }
    return 0;
    
}

C语言学习第七天 位运算练习

C语言学习第七天 位运算练习



温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
学逆向论坛-免费的逆向学习论坛
微信扫一扫即可使用手机论坛
快速回复 返回顶部 返回列表