首页 > 其他分享 >嵌入式学习录3

嵌入式学习录3

时间:2025-01-14 20:30:26浏览次数:3  
标签:运算符 运算 -- 嵌入式 学习 ++ 类型 表达式

书接上回

数据类型 运算符 和 表达式(2)

一、转义字符及字符常量

转义字符是由反斜杠\将后面的字符转换成其他的意义

以下为转义字符及其作用:

二、算术运算符

+   加法
-    减法
*    乘法
/    除法

     注:1.如果是两个整型数 相除 效果相当于是整除
            2.程序出错 
             编译时 出错  --- 语法问题 
             运行时 出错  --- 逻辑问题 eg:被除数为0
            3.除法运算 的 被除数不能为 0

%  求余

     注:
           1.求余运算的运算数 必须是 整型 
           2.被(除)操作数 不能为 0 
           3.求余运算的结果的符号 取决于 左操作数 

    求余符号的应用:

1、可以用来判断一个数是奇数还是偶数

     n%2==1(奇)     n%2==0(偶)

2、产生随机数(需配合函数rand使用)

     a%N(求余结果范围为0~n)

函数:
            rand time

            #include <stdlib.h>

            int rand(void); //函数原型 
            功能:伪随机数产生器 (当函数重复使用时产生的随机数相同)
            参数 :void 表示不需要提供(实际)参数
            返回值:就是 产生的随机数的值 


            void srand(unsigned int seed);
            功能:给rand函数设置一个种子值 
            参数:seed 设置的种子值 
            返回值:void 不需要返回值 
              
            #include <time.h>

            time_t time(time_t *tloc);
            功能:获取当前时间的秒数 
            参数: tloc 需要一个指针  NULL 
            返回值:返回秒数

++(自增)/ --(自减)

a++(--) //后置++(--) “先用后加(减)”

++(--)a //前置++(--) “先加(减)后用”、

注:
        1.运算规则 ,单独使用时,没区别 
           参与到别的运算中时,此时运算规则发挥作用 
        2.运算数必须是个左值 

        3.在函数参数中,不要对同一个变量连续多次 ++ -- 
左值  能够放在 = 左边的称为左值(可以被定位的)  --- 变量 
右值  只能放到 = 右边的称为右值(不能被定位的)  ---常量/表达式

运算时遇到很多+(-)号时,运算遵循贪心原则

 贪心原则:
          
从左到右,逐个扫描字符,
           将字符尽可能多的结合成c语言的运算符 

三、运算符的实际应用

1、表达式

      由 运算符 与 运算数 构成字符序列

注:
     1、表达式都是有值(结果)的
     2、表达式都是有数据类型的
 

2、运算符的优先级
3、不同类型数值混合运算

隐式类型转化:
从右向左 必转 
从下到上 不同精度的类型 混合运算时,低精度 往高精度转 

4.不同类型混合赋值

赋值运算:运算数=运算数(右运算数赋值给左运算数)

1. 高精度 =>低精度 


double/float => int  
int 
short 
long 
long long                   ---- 精度丢失 


2. 长类型 => 短类型  


int => short                  --- 高位截断 


3. 短类型 => 长类型   


无符号 短类型 => 长类型   高位补0
有符号 短类型 => 长类型   高位补 符号位

5、逗号运算

表达式1,表达式2......表达式n

运算结果为最后一个表达式(表达式n)的结果
 


 


 

标签:运算符,运算,--,嵌入式,学习,++,类型,表达式
From: https://blog.csdn.net/2401_85559844/article/details/145145895

相关文章

  • ROCKETMQ学习
    1.RocketMQ介绍RocketMQ是一款由阿里巴巴开源的分布式消息中间件。它具有低延迟、高吞吐量、高可用性和高可靠性等特点,适用于构建具有海量消息堆积和异步解耦功能的应用系统。1.1.基本概念●生产者(Producer):也称为消息发布者,是RocketMQ中用来构建并传输消息到服务端的运行实体......
  • EPLAN P8 学习笔记 配图 20250114
    组织结构、细节会生疏。Pageproperties-Fullpagename、Pagetype、PagedescriptionFullpagename-StructureidentifiersMainProjecttree-IdentifierStructurePageTypeNameDescriptionPagesObject元素structure结构identifier.excalidrawProjectData-S......
  • 字典学习方法
    字典学习方法是机器学习中的一种技术,它旨在从数据中学习一个有效的字典,以便更好地表示或分类数据。以下是对字典学习方法的详细介绍:一、定义与原理字典学习方法通过从训练数据中学习一个过完备的字典矩阵,使得数据可以表示为字典中少量原子的线性组合。这些原子可以看作是数据的......
  • 计算机专业应如何进行学习?
    前言欢迎各位来到贵州大学shadow计算机协会创办的学习区。我们社团旨在通过同学之间的互相交流来相互促进,相互学习。对于刚刚升进大一的广大计算机类同学,你们往往都会在刚进校就会有一个问题:作为计算机类的我们应该怎样学习?我们的出路又是什么,考研是否有必要?对于这些......
  • 一种基于具身化、符号嵌入、因果学习和记忆原则的通用人工智能(AGI)框架
    GeneralistAI(AGI)frameworkbasedontheprinciplesofembodiment,grounding,causalityandmemory 图:通用AGI系统的功能框图。概念模型由以下部分组成:(1)核心框架、体现,提供与世界接口和交互的物理本质和必要机制;(2)记忆,由不同的记忆子系统组成——感觉记忆、工作记忆......
  • STM32H743 嵌入式开发笔记(一):开发板元器件选型
    2025开年,心血来潮想要开发STM32H743单片机。上网搜寻了半天没找到自己喜欢的开发板,于是乎,我做了一个大胆的决定:作为一名硬件工程师,为何不做一块儿属于自己的开发板?废话不多说,直接开干!1. 电源部分1.1 供电接口供电接口当然采用USBType-C(MicroUSB早该被扔进历史的......
  • 【实战指南】零基础到精通AI大模型:附带详细学习路线与实践技巧,助你快速入门并精通!
    作为零基础小白学习AI大模型,可以遵循以下步骤:基础知识学习:数学基础:学习线性代数、概率论、统计学、微积分等,这些是理解AI模型的数学原理的基础。编程基础:至少掌握一门编程语言,如Python,这是实现AI算法的工具。了解AI基本概念:学习机器学习、深度学习的基本概念,了解不同的......
  • 基于深度学习的手写文本识别系统
    文章目录前言一、准备二、(0-9)数字识别模型代码1.引入库2.读入数据3.模型训练4.模型测试5.模型权重保存(不用重复训练)6.交互式界面三、结果展示四、jupyter代码下载前言用chatgpt"实现基于深度学习的手写文本识别系统|Python,PyTorch":设计并实现了基于卷积神......
  • 教育行业的智能化:AI如何改变我国的学习方式
    人工智能(AI)正在全球范围内深刻改变教育行业。对于我国这样一个人口众多、教育需求旺盛的大国,AI的应用尤为重要。中国的教育现状包括优质教育资源分布不均、应试教育主导、学生个性化需求得不到充分满足等问题,而AI的兴起正在为这些问题提供全新的解决方案。1.中国教育现状与......
  • AI大模型学习路径:适合每个人的详细步骤与技巧!
    23年AI大模型技术狂飙一年后,24年AI大模型的应用已经在爆发,因此掌握好AI大模型的应用开发技术就变成如此重要,那么如何才能更好地掌握呢?一份AI大模型详细的学习路线就变得非常重要!由于AI大模型应用技术比较新,业界也没什么参照标准,打造AI大模型技术的学习路线并非......