当前位置: 首页 > news >正文

做视频网站要多大带宽洛阳建设工程网站

做视频网站要多大带宽,洛阳建设工程网站,致设计,慈溪企业网站建设公司C语言初阶必会的练习题(3) 放在最前面的1、不允许创建临时变量,交换两个整数的内容1.1、分析:见代码注释(a)方法 1(b)方法 2 1.2、结果展示方法 1 的 结果:方法 2 的 结果…

C语言初阶必会的练习题(3)

  • 放在最前面的
  • 1、不允许创建临时变量,交换两个整数的内容
    • 1.1、分析:见代码注释
        • (a)方法 1
        • (b)方法 2
    • 1.2、结果展示
        • 方法 1 的 结果:
        • 方法 2 的 结果:
  • 2、统计二进制中1的个数
    • 2.1、分析:见代码注释
        • (a)方法 1
        • (b)方法 2
            • 方法 2 的原理图
        • (c)方法 3
            • 方法 3 的原理图
    • 2.2、结果展示
        • 方法 1 的 结果:
        • 方法 2 的 结果:
        • 方法 3 的 结果:
  • 3、打印整数二进制的奇数位和偶数位
    • 3.1、分析:见代码注释
    • 3.2、结果展示
        • 展示 1
        • 展示 2
  • 4、求两个数 二进制中不同位的个数
    • 4.1、分析:见代码注释
    • 4.2、结果展示
  • END

放在最前面的

🎈🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼
🎉🎉我的C语言初阶合集:C语言初阶合集,希望能帮到你!!!😍 😍
👋🏼🎉🎊创作不易,欢迎大家留言、点赞加收藏!!! 🥳😁😍

1、不允许创建临时变量,交换两个整数的内容

1.1、分析:见代码注释

(a)方法 1
//(方法 1):可以使用加减法,然后实现两个数字的互换 #include<stdio.h>//方法1
int main()
{//定义两个整型变量 a、bint a = 0;int b = 0;//输入scanf("%d %d", &a, &b);//定义一个整型变量 sumint sum = 0;//将 a + b的值赋值给 sumsum = a + b;//进行加减法操作,实现两个数字 的交换a = sum - a;//即 a = a + b - a = bb = sum - a ;//即 b = a + b - b = a//输出printf("%d %d\n", a, b);return 0;
}
(b)方法 2

补充 ( ^ 按位异或操作符) 的使用:

对 按位异或操作符 ( ^ )还感到一头雾水的小伙伴们,快来点击下面的这篇超实用博客文章👇,一起揭开它的神秘面纱吧!🔍✨
C语言中操作符详解(上)


方法2的原理图:

  • 图片 1

  • 图片 2

  • 图片 3

  • 图片 4

//(方法2):可以使用位操作符(^ -- 按位异或) #include<stdio.h>int main()
{//定义三个整型变量 a、b、cint a = 0;int b = 0;int c = 0;//输入scanf("%d %d", &a, &b);//使用位操作符(^ -- 按位异或),实现两个数字 的交换c = a ^ b;b = c ^ b;a = c ^ a;//输出printf("%d %d\n", a, b);return 0;
}

1.2、结果展示

输入两个数字: - 5 和 10

方法 1 的 结果:

方法 2 的 结果:

在这里插入图片描述

2、统计二进制中1的个数

描述:

写一个函数返回参数二进制中 1 的个数。
比如: 15
二进制位:0000 1111
有4 个 1

2.1、分析:见代码注释

(a)方法 1
//统计二进制中1的个数
// 
//首先我们先把问题拆分成我们熟悉的问题
//(1)要得到二进制数的每一位
//(2)进行统计 二进制数字 1 的个数
// 
//(1)要得到二进制数的每一位
//类比 输出十进制的每一位是 
// (i)  % 10
// (ii) / 10
// 
//(2)进行统计 二进制数字 1 的个数
//在得到每一位的数字时候,判断是否为 1
//是 1 则 计数器加 1,反之,则不进入 if 语句 #include<stdio.h>//定义一个 NumberOf1 函数,返回类型是 int, 
//参数是 unsigned int(无符号整型) n
int NumberOf1(unsigned int n)
{//定义一个计数器int count = 0;// while 循环while (n != 0){//判断 n % 2 的结果是否等于 1if ((n % 2) == 1){//如果是,则 count + 1count++;}// 将 n / 2 赋值给 nn = n / 2;}//返回 countreturn count;
}int main()
{//定义int n = 0;//输入scanf("%d", &n);//调用函数,用于输出数字的每一位,并统计 1 的个数int ret = NumberOf1(n);//输出printf("%d", ret);return 0;
}
(b)方法 2

补充:
嘿小伙伴们!👋🏼 如果有人对C语言里 按位与(&)操作符📜 还感到一头雾水🤯,别急!😌 点击下面的链接🔗,让我们一起复习一下,
把这些让人头疼的概念搞定吧!💪💡

C语言中操作符详解(上)

方法 2 的原理图

#include<stdio.h>int NumberOf1(int n)
{//定义一个计数器int count = 0;//定义一个整型变量 iint i = 0;// for 循环 for (i = 0; i < 32; i++){// if 条件判断语句// 判断是条件是 (n >> i) -- n 右移 i 位// 与 1 进行相与(对应的二进制序列 有 0 则是 0,两个同时为 1 才为 1)// 的结果是否 等于 1if (((n >> i) & 1) == 1){//如果是,则 count+1count++;}}//返回 countreturn count;
}int main()
{//定义int n = 0;//输入scanf("%d", &n);//调用函数,并统计 1 的个数int ret = NumberOf1(n);//输出printf("%d", ret);return 0;
}
(c)方法 3
方法 3 的原理图

int NumberOf1(int n)
{//定义一个计数器int count = 0;// while 循环while (n != 0){//进入循环即 n != 0,则 count + 1count++;// 将 n 和 (n - 1)  进行 相与(对应的二进制序列 有0 则是 0,两个同时为 1 才为1)// 并将结果 赋值给 nn = n & (n - 1);}//返回 countreturn count;
}int main()
{//定义int n = 0;//输入scanf("%d", &n);//调用函数,并统计 1 的个数int ret = NumberOf1(n);//输出printf("%d", ret);return 0;
}

2.2、结果展示

方法 1 的 结果:

方法 2 的 结果:

方法 3 的 结果:

3、打印整数二进制的奇数位和偶数位

描述:

获取一个整数二进制序列中所有的偶数位和奇数位,
分别打印出二进制序列

3.1、分析:见代码注释

  • 思路展示:

void Print(int n)
{//定义一个整型变量 iint i = 0;//打印提示信息printf("奇数位:");// for 循环 for (i = 30; i >= 0; i -= 2){printf("%d ", (n >> i) & 1);}//打印提示信息printf("\n偶数位:");// for 循环 for (i = 31; i >= 1; i -= 2){printf("%d ", (n >> i) & 1);}
}int main()
{//定义int n = 0;//输入scanf("%d", &n);//调用函数,用于打印整数二进制的奇数位和偶数位Print(n);return 0;
}

3.2、结果展示

展示 1
  • 输入数字 1

  • 数字1 在32位机器上的二进制序列

  • VS输出结果图片展示

展示 2
  • 输入数字 10

  • 数字10 在32位机器上的二进制序列

  • VS输出结果图片展示


4、求两个数 二进制中不同位的个数

描述:

编程实现:
两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子: 1999 2299
输出例子:7

4.1、分析:见代码注释

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main()
{//定义两个整型变量 a、bint a = 0;int b = 0;//输入scanf("%d %d", &a, &b);//定义一个整型变量 iint i = 0;//定义一个整型变量 count,用作计数器int count = 0;// for 循环for (i = 0; i < 32; i++){// if 条件语句//  判断条件是 a 和 b 的每一位(右移 i 位操作)分别与 1 进行 //  按位与(对应的二进制序列,数字同时为 1才为 1,有 0 则为 0)//   即得到 a 和 b 的二进制序列的每一位进行 一 一 比较if (((a >> i) & 1) != ((b >> i) & 1)){//计数器 count 加 1count++;}}//输出printf("%d\n", count);return 0;
}

4.2、结果展示

输入例子: 1999 2299
输出例子: 7

END

每天都在学习的路上!
On The Way Of Learning

“亲爱的读者们,文章到这里就结束啦😃。在阅读过程中有没有遇到什么疑问等等❓欢迎在评论区留言告诉我哦,期待与你的互动交流🤗!”

http://www.sczhlp.com/news/85552/

相关文章:

  • 响应式网站pad尺寸建设银行人力资源系统网站怎么进
  • 石景山网站seo优化排名网站建设技术选择
  • 西安网站托管维护下载网站app
  • vs2017做网站本人急招一名临时工
  • 建网站用什么服务器微官网制作平台有哪些
  • 群晖怎么做网站西安做一个企业网站要多少钱
  • 济南做网站建设的公司百度灰色词排名代发
  • 温州网站制作建设龙口建网站公司价格
  • 不同用户入口的网站样板seo云优化外包
  • 做网站能拿多少钱王烨在地府是什么身份
  • 中山网站建设工作室建网站赚钱吗
  • 成都建网站的公司网络建设费计入哪个科目
  • 做餐饮公司网站网站备案 营业执照
  • net网站开发视频中国建设银行网站忘记密码怎么办
  • 电子商务网站建设期中凡科快图电脑版
  • 一个网站绑定多个域名网站后台批量上传图片
  • 网站绩效营销百度关键字怎么搜到公司网站
  • 大连做网站制作建设网站如何收费
  • ps 制作网站2017年网站外链怎么做
  • 校园二级网站建设是先做网站还是先备案
  • 襄阳网站seo医生可以自己做网站吗
  • 苍梧县网站建设张家口购物网站开发设计
  • 在那个网站做直播好赚钱吗seo推广灰色词
  • 网站没有备案怎么申请广告微信小程序认证费用
  • 企业公示信息查询系统江西南宁排名seo公司
  • 晋城市企业网站想给公司做网站怎么做
  • 南通集团网站建设广东腾越建筑工程有限公司
  • 百度收录不了网站吗京紫元年网站建设
  • 从0到1实现Transformer模型-CS336作业1
  • 百度收录公司网站织梦网站首页自动更新