Objective-C是C语言的超集,故基本类型是一样的,所以学过C语言的朋友,在面对Objective-C时也不会太陌生,毕竟数据类型是一样的,只不过对数据的处理方法不一样,那么我们就来一起学习下基本数据类型,为整个Objective-C的学习打好基础

整个数据类型如下图所示

可以看到基本的数据类型包括 ×××,字符型,浮点型,枚举型,此篇博文就主要概述这四种类型

1.×××

整型包括如下几种具体的类型

  • short int

  • int

  • long int

  • long long

最常用的就是int了,其余三种我们平时用得少,但并不是不用,

  • short int在内存中占16位,取值范围是-2的15次方到2得15次方,

  • int类型在内存中占32位,取值范围是-2的31次方到2的31次方,

  • long int在内存中占64位,取值范围是-2的63次方到2得63次方。

  • long long和long int 差不多,也是内存占64位,取值范围是-2的63次方到2得63次方。

Objective-C还允许在整型前面添加unsigned关键字,将他们变成无符号整型,而且最大值比没有unsigned还要打一倍,比如short int 的取值范围是-32768-32767 那么unsigned的取值范围是0-65535

2.字符型

字符型代表的单个字符,这个没什么要讲的了,因为学过编程的都见过并且用过,Objective-C中得字符类型只占一个字节,所以字符类型并不支持中文(中文是2个字节)

另外我们常用的转移字符也属于字符型的范畴

常用的如下

\b            退格符

\n            换行符

\r              回车符

\t            制表符

\"            双引号

\'            单引号

\\            反斜线

这里Objective-C和C有一个区别就是Objective-C的字符类型是单引号括起来,C语言的字符类型是双引号括起来,

3.浮点型

浮点类型有三种:float,double和long double。一般情况下,float占4字节,double占8字节,long double占16字节

除非另有说明,否则,Objective-C 编译器将所有浮点常量均看作 double 值。要清楚地表示 float 常量,需要再数字的尾部添加一个 f 或 F,例如:12.8f

4.枚举型

枚举值也是编程中常用的一种数据结构,他表示变量中包含几种可能的值,例如太阳系行星的变量值有金星,水星,木星,火星,土星,地球,天王星,海王星,像这种就可以定义为枚举

具体使用方法如下

enum season {spring,summer,fall,winter};
enum season myLove=summer;

第一行表示申明一个枚举类型 ,season,它的值只包括 spring,summer,fall,winter四种,第二行的意思是,创建一个season的值,给它赋值为summer,

5.输出格式字符

Objective-C中,有一个输出的函数叫NSlog(),表示输出字符串和其他数据类型,并且可以用到“%”占位符,解释其参数。使用方法如以下代码:

int a = 56;

NSLog(@"==%d==" , a);

NSLog(@"==%9d==" , a);      // 输出整数占9位

NSLog(@"==%-9d==" , a);    // 输出整数占9位,并且左对齐

NSLog(@"==%o==" , a);     // 输出8进制数

NSLog(@"==%x==" , a);    // 输出16进制数

long b = 12;

NSLog(@"%ld" , b);     // 输出long int型的整数

NSLog(@"%lx" , b);     // 以16进制输出long int型的整数

double d1 = 2.3;

NSLog(@"==%f==" , d1);    // 以小数形式输出浮点数

NSLog(@"==%e==" , d1);    // 以指数形式输出浮点数

NSLog(@"==%g==" , d1);    // 以最简形式输出浮点数

NSLog(@"==%9f==" , d1);    // 以小数形式输出浮点数,并且最少占用9位

NSLog(@"==%9.4f==" , d1);    // 以小数形式输出浮点数,至少占用9位,小数点共4位

long double d2 = 2.3;

NSLog(@"==%lf==" , d1);    // 以小数形式输出长浮点数

NSLog(@"==%le==" , d1);    // 以指数形式输出长浮点数

NSLog(@"==%lg==" , d1);    // 以最简形式输出长浮点数

NSLog(@"==%9lf==" , d1);    // 以小数形式输出长浮点数,并且最少占用9位

NSLog(@"==%9.4lf==" , d1);    // 以小数形式输出长浮点数,至少占用9位,小数点共4位

NSString *str = @"疯狂iOS";

NSLog(@"==%@==" , str);    // 输出Objective-C的字符串

NSDate *date = [[NSDate alloc] init];

NSLog(@"==%@==" , date);    // 输出Objective-C对象

%f %e %g三个都是表示浮点型的输出占位符,%f表示浮点值,%e表示科学计数法,&g表示使用常用的浮点计数法还是使用科学计数法来显示浮点值。这一决定取决于指数的值:如果该值小于 -4 或大于 5,采用 %e (科学计数法)表示,否则采用 %f (浮点计数法)。

转载于:https://blog.51cto.com/romitlee/1591563

Objective-C基础之基本数据类型相关推荐

  1. Python基础语法和数据类型最全总结

    本文分享自华为云社区<Python最全基础语法和数据类型总结>,原文作者:北山啦 . 人生苦短,我用Python.总结了Python最全基础语法和数据类型总结,一文带你学会Python. ...

  2. numeric scale mysql_MySQL基础教程1 — 数据类型之数值类型 - numeric

    ...if (!$dateTimeString) { $dateTimeString = time(); } $numeric = ''; $add_space = false; for($i=0;$ ...

  3. ArcGIS基础学习:数据类型

    ArcGIS基础学习:数据类型 前言 最近喜欢上了学习地理统计的相关内容,准备开始学习,会不定时修改. 第一章 数据类型 一.arcgis数据类型: 1.数字型:整数型.单精度浮点型.双精度浮点型 2 ...

  4. Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化

    Python入门(二)--IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说 ...

  5. Practical Python基础1(数据类型,运算,比较符号,字符串,列表,函数等)

    Practical Python基础1(数据类型,运算,比较符号,字符串,列表,函数等) Python是一种解释性的高级编程语言.它通常被归类为"脚本语言",被认为类似于Perl. ...

  6. Verilog HDL基础知识---之数据类型

    Verilog HDL基础知识之数据类型 数据类型 物理数据类型 连线型 寄存器型 连线型和寄存器型数据类型的声明 存储器型 抽象数据类型 整型 时间型 实型 参数型 kkkk我来啦 , 接上回写 数 ...

  7. Java Web学习day26------Redis基础、Redis数据类型、常用指令、jedis、持久化

    Redis基础.Redis数据类型.常用指令.jedis.持久化 1. Redis 简介 1.1 NoSQL概念 1.2 Redis概念 1.3 Redis 的下载与安装 1.4 Redis服务器启动 ...

  8. js打印,基础知识,数据类型

    打印,基础知识,数据类型 <!DOCTYPE html> <html><head><meta charset="utf-8" />& ...

  9. UE4 Material 101学习笔记——01-07 介绍/PBR基础/UV扭曲/数据类型/翻页动画/材质混合/性能优化

    UE4 Material 101学习笔记--01-07 介绍/PBR基础/UV扭曲/数据类型/翻页动画/材质混合/性能优化 Lec 01 什么是着色器 What Is A Shader? 1.1 介绍 ...

  10. 2021年大数据常用语言Scala(六):基础语法学习 数据类型与操作符

    数据类型与操作符 scala中的类型以及操作符绝大多数和Java一样,我们主要来学习 与Java不一样的一些用法 scala类型的继承体系 数据类型 基础类型 类型说明 Byte 8位带符号整数 Sh ...

最新文章

  1. 【转】webgame前台开发总结--虽然是10年的文章,但是也有参考价值
  2. Dwg图纸属性的读取
  3. SwipeRefreshLayout
  4. object detection
  5. 计算机图形软件---OpenGL简介
  6. 事件过滤器及不规则窗体
  7. iOS开发-开发总结(四)
  8. Kafka集成Kerberos之后如何使用生产者消费者命令
  9. 关于flymcu烧录stm32芯片超时的问题解决
  10. Intelligent driver model(IDM)
  11. 二、爬虫 - 新浪爱问共享资源全下载之功能实现
  12. 第十六届—振兴杯计算机网络管理员决赛模拟题
  13. 手机怎么查看视频的MD5
  14. 使用Chrome调试JavaScript
  15. 阿里面试经历与感受谈
  16. 抢票软件不靠谱?不如看看用AI怎么玩转12306
  17. 2022软科世界大学学术排名
  18. GitHub:图像分类/目标检测资料
  19. 【LSTM+embeddingbag】进行文本分类完整代码~
  20. 适合大学生浏览的网站

热门文章

  1. redis php方法,PHP操作Redis的基本方法
  2. php urledcode_攻防世界 php 2 函数urldecode 使用说明
  3. 华中科技大学计算机系统结构,华中科技大学计算机系统结构考研
  4. python作用域排序_11道Python常见面试题,80%的人不会
  5. ajax 连接java,如何使用Ajax连接到Java servlets?
  6. mysql用户权限与安全实例_mysql用户权限管理实例分析
  7. oracle analyze 全部表,Oracle analyze table
  8. linux系统下c语言程序需要改动的地方,如何在Linux系统环境下进行C语言开发
  9. php基类控制器,控制器基类
  10. vue element form 自定义校验1(字段校验)