Objective-C学习笔记(二)

这篇博客详细介绍了Objective-C中的数据类型,包括基本数据类型、常量、限定词如long、unsigned等,以及id类型。此外,还深入探讨了算数表达式的运算规则,如二元和一元运算符的优先级、模运算符的使用以及整型与浮点值的转换。最后,提到了赋值运算符的结合性和效率优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据类型和表达式
①数据类型和常量

基本数据类型:int,char,float,double
常量:任何数字、单个字符或者字符串

intfloatchar
int即是整数常量,或者称为整型常量,例如:12,32,-345等,前面的负号表示为负数float又称浮点常量,可以存储包含小数位的值,NSLog中显示浮点值可用转换字符%f,&e或者%g;浮点常量也可用科学计数法表示,例如:1.7e4即表示1.7*10^4。double类型与float类型相似,只是可存储范围要大。计算机中不能精确的表示一些浮点数!char称为字符常量,将字符放入一对单引号中就能得到字符常量,例如’a’、’;’、’2’。特别的:‘\n’(即换行符)是一个合法的字符常量,其中\被认为是特殊符号,Objective-C认为’\n’是单个字符;NSLog中使用%c显示char字符。
②限定词

限定词:long、long long、short、unsigned、signed
  将限定词放在声明之前,那么所声明的变量在某些系统中将具有不同的值域。

类型实例NSLog字符
char‘a’、’\n’%c
short int-%hi、%hx、%ho
unsigned short int-%hu、%hx、%ho、%hu
int12、-97、0xef0、o177%i、%x、%o
unsigned int12u、100U、0xfu%u、%x、%o
long int123l、0x2fl、o28l、-123L%li、%lx、%lo
unsigned long int12UL、100ul、0xffeeul%lu、%lx、%lo
long long int0xe5e4e4e4e4ee4LL、500ll%lli、%llx、%llo
unsigned long long int12ull、0xffeeULL%llu、%llx、%llo
float12.34f、3.1e-5f、0x1.4p10、0x1P-1%f、%e、%g、%a
double12.34、3.4e-5、0x.1fp3%f、%e、%g、%a
long double12.34L、4.5e-5l%Lf、%Le、%Lg
idnil%p

id类型
  id数据类型可存储任何类型的对象。

③算数表达式
二元运算符:+、-、*、/

  包含多个运算符的表达式求值依据运算符优先级来确定:优先级较高的运算符首先求值,(*、/)>(+、-);若表达式包含优先级相同的运算符,按照从左到右或者从右到左的方向求值,具体按那个方向取决于运算符,即所谓的运算符结合性

一元运算符:-

  一元运算符用于单个值的运算,而二元运算符作用于两个值。
  与其他运算符相比,一元负号运算符具有更高的优先级。

模运算符:%

  NSLog使用%后面的字符来确定如何输出下一个参数,然而,若%后紧跟一个%,那么NSLog会认为你的目的是想显示百分号。

    NSLog(@"a/b*b+b%%b=a");
    显示结果是:a/b*b+a%b=a

  模运算%只用于处理整数,模运算的优先级与乘法,除法相等。

整型值与浮点值的相互转换

  1、将浮点数赋值给整型变量,小数部分将被删节,例如:

    int a;
    a=12.34;
    NSLog(@"a=%i",a);

  将显示:a=12
  2、编写算术表达式需要记住的两点:
   <Ⅰ>只要表达式中两个运算数是整型,该运算就将在整数运算的规则下进行。
   <Ⅱ>对于任何处理两个值得运算,如果其中一个值是浮点变量或常量,那么这一运算将作为浮点运算来处理。

类型转换运算符
f2=(float)a/100;

  类型转换运算符将变量a的值转换成float类型,而且该运算符不会影响变量a的值,它是一元运算符。
  类型转换运算符的优先级比其他所有算术运算符都高,但一元减号和加号除外。
  类型转换运算符主要用来将一般id类型的的对象转换成特定类的对象。

④赋值运算符

将算术运算符和赋值运算符合并在一起:op=

count += 10;

  通常所说的“加号等号”运算符(+=)将运算符右侧的表达式和左侧的表达式想加,将结果保存到运算符左侧的变量中。
  使用赋值运算符的目的有三个:

首先,程序更容易书写
其次,结果表达式更容易阅读
最后,这些运算符可以使程序运行速度更快,因为编译器有时在计算表达式时能产生更少的代码。

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 “STC单片机电压测量”是一个以STC系列单片机为基础的电压检测应用案例,它涵盖了硬件电路设计、软件编程以及数据处理等核心知识点。STC单片机凭借其低功耗、高性价比和丰富的I/O接口,在电子工程领域得到了广泛应用。 STC是Specialized Technology Corporation的缩写,该公司的单片机基于8051内核,具备内部振荡器、高速运算能力、ISP(在系统编程)和IAP(在应用编程)功能,非常适合用于各种嵌入式控制系统。 在源代码方面,“浅雪”风格的代码通常简洁易懂,非常适合初学者学习。其中,“main.c”文件是程序的入口,包含了电压测量的核心逻辑;“STARTUP.A51”是启动代码,负责初始化单片机的硬件环境;“电压测量_uvopt.bak”和“电压测量_uvproj.bak”可能是Keil编译器的配置文件备份,用于设置编译选项和项目配置。 对于3S锂电池电压测量,3S锂电池由三节锂离子电池串联而成,标称电压为11.1V。测量时需要考虑电池的串联特性,通过分压电路将高电压转换为单片机可接受的范围,并实时监控,防止过充或过放,以确保电池的安全和寿命。 在电压测量电路设计中,“电压测量.lnp”文件可能包含电路布局信息,而“.hex”文件是编译后的机器码,用于烧录到单片机中。电路中通常会使用ADC(模拟数字转换器)将模拟电压信号转换为数字信号供单片机处理。 在软件编程方面,“StringData.h”文件可能包含程序中使用的字符串常量和数据结构定义。处理电压数据时,可能涉及浮点数运算,需要了解STC单片机对浮点数的支持情况,以及如何高效地存储和显示电压值。 用户界面方面,“电压测量.uvgui.kidd”可能是用户界面的配置文件,用于显示测量结果。在嵌入式系统中,用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值