C语言入门(第二天:判断、循环)

一、基础语法

1.1 位运算符(!!重点)

运算符术语示例结果
&按位与011 & 1012个都为1才为1,结果为001
|按位或011 & 101有1个为1就为1,结果为111
^按位异或011 ^ 101不同的为1,结果为110
~取反011100
<<左移1010 << 110100
>>右移1010 >> 10101
&  按位与运算  
011    3
101    5
----
001
结论:按位与计算  相同为为1  结果为1  | 按位或运算  
011    3
101    5
-----
111
结论 :按位或运算   只要有一个为1  结果就为1^  按位异或运算  
011    3
101    5
-----
110结论:  按位异或运算   不同的为1  相同为0~  取反运算 
~ 011100
结论:  取反运算      1为0  0为1  左移 
1010 <<1       1010
结论:左移 就是所有位 向左移动   后面补0右移
1010 >>1       101
结论:右移 就是所有位 向右移动  

置位案例:

置1 按位或运算

推导过程:

验证结果:

 // 将变量a的第2位设置为1,其他位保持不变// 0b10110011    0xb3// 0b00000100     0x4  | 按位或运算// 0b10110111  // uint8_t a = 0b1011 0011; // 0xb3;uint8_t a = 0xb3; // 0xb3;printf("置位结果:%0x\n", a | 0x4);printf("结果为:%0x\n", a | (1 << 2));// printf("置位结果:%0x\n", a | 0b00000100);// 将变量b的第2位、第6位设置为1,其他位保持不变// 0b10110011   0xb3// 0b01000100   0x44// 0b11110111   0xF7uint8_t b = 0xb3; // 0xb3;printf("结果为:%#X\n", b | 0x44);printf("结果为:%#X\n", b | (1 << 2 | 1 << 6));

置0 按位与运算

推导过程:

验证结果:

// 将变量c的第5位设置为0,其他位保持不变// 将变量c的第5位设置为0,其他位保持不变// 按位与  &// 0b10110011   0xb3// 0b11011111   0xdf// 0b10010011uint8_t c = 0b10110011;  // 0xb3;// printf("结果为:%#X\n", c & 0b11011111);printf("结果为:%#X\n", c & 0xdf);printf("结果为:%#X\n", c & ~(1 << 5));// 将变量d的第0~3位设置为0,其他位保持不变// 11111111   0xff// 11110000   0xf0// 11110000uint8_t d = 0xff;  // 0xff;printf("结果为%#x\n", d & 0xf0);// printf("=====%d\n", (1 << 0 | 1 << 1 | 1 << 2 | 1 << 3));printf("---结果是%#x\n", d & ~(1 << 0 | 1 << 1 | 1 << 2 | 1 << 3));
将某位取反

推导过程:

验证结果:

 // 将变量e的第2位取反,其他位保持不变// 10110011// 00000100  ^  0x4// 10110111uint8_t e = 0xb3;  // 0xb3;printf("***结果是%#x\n", e ^ 0x4);printf("***结果是%#x\n", e ^ (1 << 2));

取出某些位

推导过程:

结果验证:

 // 将变量f取出8-15位uint32_t f = 0x12345678;  //16进制  0x56//① f  十六进制  对应的事32位二进制 //②怎么获取56  这8位数       & 运算 //③  和谁与运算    1111 1111   )0xff00  --->  0x0000ff00  --->0x5600//④右移 8位        0x56;       // 0000 0000 0000 0000 0000 0000 0000 0000   0x12345678//                                           0x00000ff00 printf("%#x\n", (f & 0x00000ff00) >> 8);

1.2 类型转换

  • 类型转换的原则:

    • 占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。

二、判断

2.1 if 语句

2.2 if...else 语句(重点)

2.3 三目运算符

2.4switch语句

  • switch可以支持数据类型:

    • int

      • 枚举类型

      • char类型

2.5分支综合案例

#include <stdio.h>
// 1.定义变量保存年份、月份、天数
// 2.输入年份和月份
// 3.根据月份输出天数
// 	1、3、5、7、8、10、12月  31天
//     4、6、9、11月			30天
//     2月 	非闰年 28天  闰年 29天
// 	闰年判断:能被4整除,但不能被100整除的;或者能被400整除的年份int main() {int  year, month, day;printf("请输入年月");scanf("%d %d", &year, &month);switch (month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2:if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {day = 29;}else {day = 28;}default:break;}printf("年=%d 月= %d 天数=%d\n", year, month, day);return 0;
}

三、循环

3.1 while语句(重点)

3.2 do...while语句

3.3 for语句(重点)

3.4 死循环

3.5 循环案例

3.5.1 实现1+2+3……100所有数字的累加

四、跳转关键字

  • 循环和switch专属的跳转:break

  • 循环专属的跳转:continue

  • 无条件跳转:goto

4.1 break(重点)

  • 循环中break,某一条件满足时,不再执行循环体中后续重复的代码,并退出循环

4.2 continue

  • 某一条件满足时,不再执行本次循环体中后续重复的代码,但进入下一次循环判断

    • while循环,continue 之前一定要修改计数器(条件变量),否则,导致死循环

4.3 goto

  • goto用于无条件跳转,尽量少用

    • 在一种情况下可以使用goto语句:从一组嵌套的循环中跳出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/815255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Python实现自动化网页答题功能-模拟考试篇

介绍 在驾驶员考试网站上进行模拟考试python自动答题 自动化原理 该脚本使用了自动化模块 DrissionPage 中的 ChromiumPage 类来实现网页的自动化操作。通过定位网页元素和模拟点击操作&#xff0c;完成了选择答案和提交答卷的过程。 用途与注意事项 用途&#xff1a;该脚本…

LLM推理框架Triton Inference Server学习笔记(二): Triton模型部署流程(stey by stey)

官方文档查阅: TritonInferenceServer文档 1. 写在前面 上一篇文章对triton inference server进行了一个整体的介绍&#xff0c;解答了三个经典问题what, why, how。 这篇文章就开始转入实践&#xff0c; 从实践的角度整理Triton模型部署的全流程&#xff0c; 如果我有一个训…

系统架构最佳实践 -- 卡券系统架构设计

目录 1.卡券类型的设计&#xff1a; 2.用户领取和使用流程&#xff1a; 3.卡券发放与管理&#xff1a; 4.卡券核销与统计&#xff1a; 5.安全性和防欺诈&#xff1a; 随着电子商务的迅速发展&#xff0c;卡券系统成为了各种商家吸引用户和促销的重要手段。在设计和实现卡券…

分享一个预测模型web APP的功能模块和界面的设计

一个临床预测模型web APP功能模块与界面设计 随着医疗技术的不断进步&#xff0c;web APP是临床预测模型在医学领域的应用的重要形式。这里分享一个web APP的设计&#xff0c;手里有医学预测模型的可以尝试将其构建成webAPP&#xff0c;进而在临床实践中体验预测模型带来的便利…

CTF工具下载(1)----随波逐流

为什么要写这个博客喃&#xff0c;因为随波逐流每隔一段时间就会更新&#xff0c;要下载最新版本才能用&#xff0c;但是每次都会有点麻烦&#xff0c;所以写一个博客记录下。 1.进入官网&#xff0c;点击 2.进入城通网盘 3.进入编码工具 4.点击最新版本的随波逐流就下载了&am…

在Mac主机上连接Linux虚拟机

前言 最近醉心于研究Linux&#xff0c;于是在PD上安装了一个Debian Linux虚拟机&#xff0c;用来练练手。但是每次在mac和Linux之间切换很是麻烦&#xff0c;有没有一种方法&#xff0c;可以在mac终端直接连接我的虚拟机&#xff0c;这样在mac终端上就可以直接操控我的Linux虚…

咸鱼之王_手游_开服搭建架设_内购修复无bug运营版

视频演示 咸鱼之王_手游_开服 游戏管理后台界面 源码获取在文章末尾 源码获取在文章末尾 源码获取在文章末尾 或者直接下面 https://githubs.xyz/y28.html 1.安装宝塔 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh &…

(2024,IXC2-4KHD,LVLM,动态图像分割,高分辨率图像处理)InternLM-XComposer2-4KHD

InternLM-XComposer2-4KHD: A Pioneering Large Vision-Language Model Handling Resolutions from 336 Pixels to 4K HD 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 方…

【云计算】云数据中心网络(二):弹性公网 IP

云数据中心网络&#xff08;二&#xff09;&#xff1a;弹性公网 IP 1.什么是弹性公网 IP2.弹性公网 IP 的类型2.1 多线 EIP2.2 任播 EIP2.3 单线静态 EIP2.4 精品 EIP2.5 识别不同类型的 IP 的地址 3.弹性公网 IP 功能3.1 自带公网 IP 地址上云3.2 尽力找回公网 IP 地址3.3 连…

【学习心得】神经网络知识中的符号解释②

我在上篇文章中初步介绍了一些神经网络中的符号&#xff0c;只有统一符号及其对应的含义才能使我自己在后续的深度学习中有着一脉相承的体系。如果对我之前的文章感兴趣可以点击链接看看哦&#xff1a; 【学习心得】神经网络知识中的符号解释①http://t.csdnimg.cn/f6PeJ 一、…

3. 安装arrach结构的Mysql

提示&#xff1a;arm的centos上面安装arrach结构的Mysql 文章目录 前言一、查看已经安装过的并卸载mysql二、创建mysql用户组1.设置用户组2. 安装3.设置启动4.查看密码5.修改登录密码6.授权7.修改连接8.设置参数 常见问题排查1. 启动失败查看&#xff1a;2. 用户操作3. 踩坑解决…

Leetcode刷题-字符串详细总结(Java)

字符串 字符串可能在算法处理上面和数组是类似的&#xff0c;但是String和数组的数据结构还是有一些不一样的 1、反转字符串 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; 双指针的经典应用&#xff0c;两个指针同时向中间移动 public void reverseString(char[…

扣子Coze插件教程:如何使用Coze IDE创建插件

&#x1f9d9;‍♂️ 诸位好&#xff0c;吾乃斜杠君&#xff0c;编程界之翘楚&#xff0c;代码之大师。算法如流水&#xff0c;逻辑如棋局。 &#x1f4dc; 吾之笔记&#xff0c;内含诸般技术之秘诀。吾欲以此笔记&#xff0c;传授编程之道&#xff0c;助汝解技术难题。 &#…

爬虫 BeautifulSoup模块

爬虫 BeautifulSoup模块 【一】介绍 【1】说明 BeautifulSoup库是python的一个第三方库&#xff0c;主要用于处理HTML和XML文档他提供了一些简单的、python式的函数来解析、导航、搜索以及修改分析树&#xff0c;使得从网页抓取的数据变得简单高效BeautifulSoup自动将输入文…

华大基因获证:氧化三甲胺检测试剂助力心血管疾病早期干预

近日&#xff0c;深圳华大基因股份有限公司旗下的全资子公司华大生物科技&#xff08;武汉&#xff09;有限公司获得两项医疗器械注册证&#xff08;注册号&#xff1a;鄂械注准20232404470和鄂械注准20232404469&#xff09;。该试剂是国内首个获批二类注册的&#xff0c;基于…

2024第十五届蓝桥杯 Java B组 填空题

声明&#xff1a;博主比较菜&#xff0c;以下均为个人想法。解决方法仅供参考。欢迎大家一起讨论交流&#xff01; 第一题&#xff1a; 题目&#xff1a; &#xff08;简洁版&#xff09;从小到大排列是20或24倍数的正整数&#xff0c;前10个数依次是&#xff1a;”20 24 40 …

Linux进阶篇:文件传输工具curl命令详解

文件传输工具Linux curl命令详解 一 curl命令介绍 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具&#xff0c;可以说是一款很强大的http命令行工具。它支持文件的上传和下载&#xff0c;是综合传输工具&#xff0c;但按传统&#xff0c;习惯称url为下载工具。…

package.java文件的作用

你查看springboot的源码&#xff0c;有很多类都有这个文件&#xff0c;在idea不能创建&#xff0c;因为不支持这种命名&#xff0c;只能用记事本创建后复制都项目中。 主要应用是给类添加正常&#xff0c;或者把公用的注解都放到这里&#xff0c;常量不合适&#xff0c;作用范…

竞赛 基于CNN实现谣言检测 - python 深度学习 机器学习

文章目录 1 前言1.1 背景 2 数据集3 实现过程4 CNN网络实现5 模型训练部分6 模型评估7 预测结果8 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于CNN实现谣言检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&am…

欧姆龙61F系列液位开关使用教程(补水和排水)

欧姆龙61F系列液位开关使用教程(补水和排水) 本文以61F-LS-CP11-NRA型号的液位开关为例进行说明: 具体的选型文档可参考以下链接中的内容: OMRON欧姆龙-无浮标开关(紧凑插入型)61F-LS液位开关-选型样本说明 补水功能(供水) 如下图所示, 电机电源为3相AC220V; 控制电…