Object-C中的数字对象

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        /*
         Object-C中的数字对象:
         1.int,float,long,double等都是Object-C中的基本数据类型,不是对象,也就是说不能够向他们发送消息。
         2.有时需要将值类型作为对象使用,如NSArray,要求存储的必须是对象,因此不能直接将基本数据类型放入数组。
         3.如果需要存储基本数据类型(包括char),可以使用NSNumber类。
         */

        NSNumber *intNumber,*longNumber,*floatNumber,*charNumber,*doubleNumber;

        //int型值
        intNumber=[NSNumber numberWithInt:100];
        NSLog(@"%i",[intNumber intValue]);

        //long型值
        longNumber=[NSNumber numberWithLong:0xabcdef];
        NSLog(@"%lx",[longNumber longValue]);

        //char型值
        charNumber=[NSNumber numberWithChar:'A'];
        NSLog(@"%c",[charNumber charValue]);

        //float型值
        floatNumber=[NSNumber numberWithFloat:100.00];
        NSLog(@"%g",[floatNumber floatValue]);

        //double型值
        doubleNumber=[NSNumber numberWithDouble:12345e+15];
        NSLog(@"%lg",[doubleNumber doubleValue]);

        //验证两个值是否相等
        if([intNumber isEqualToNumber:floatNumber]==YES)
        {
            NSLog(@"%i和%g比较,值相等",[intNumber intValue],[floatNumber floatValue]);
        }
        else
        {
            NSLog(@"%i和%g比较,值不等",[intNumber intValue],[floatNumber floatValue]);
        }

        //两个值比较大小
        if([intNumber compare:floatNumber]==NSOrderedAscending)
        {
            NSLog(@"%i和%g比较,第一个数<第二个数",[intNumber intValue],[floatNumber floatValue]);
        }
        else
        {
            NSLog(@"%i和%g比较,第一个数≥第二个数",[intNumber intValue],[floatNumber floatValue]);
        }
    }
    return 0;
}

输出结果:

2014-02-12 21:59:34.847 04.数字[1229:303] 100

2014-02-12 21:59:34.849 04.数字[1229:303] abcdef

2014-02-12 21:59:34.849 04.数字[1229:303] A

2014-02-12 21:59:34.850 04.数字[1229:303] 100

2014-02-12 21:59:34.850 04.数字[1229:303] 1.2345e+19

2014-02-12 21:59:34.850 04.数字[1229:303] 100100比较,值相等

2014-02-12 21:59:34.851 04.数字[1229:303] 100100比较,第一个数第二个数

Program ended with exit code: 0

时间: 2024-10-22 11:08:22

Object-C中的数字对象的相关文章

java中使用Object类中比较遇到的问题,请帮忙解答一下。

问题描述 在java中由于Object是所有类的父类,而且equals方法是public,理论上所有Person类都能够继承并使用该方法.然而以下程序执行结果是false.```classPerson//定义了Person类,实际就是继承了Object类{privateStringname;privateintage;publicPerson(Stringname,intage){this.name=name;this.age=age;}}publicclassTestObject{public

PowerDesigner中创建时Object language中出现空白

问题描述 PowerDesigner中创建时Object language中出现空白 PowerDesigner 没有向正常的一样出现JAVA 怎么回事.....

深入解析JavaScript中的数字对象与字符串对象_基础知识

JavaScript Number 对象JavaScript 只有一种数字类型. 可以使用也可以不使用小数点来书写数字.JavaScript 数字 JavaScript 数字可以使用也可以不使用小数点来书写: 实例 var pi=3.14; // 使用小数点 var x=34; // 不使用小数点 极大或极小的数字可通过科学(指数)计数法来写: 实例 var y=123e5; // 12300000 var z=123e-5; // 0.00123 所有 JavaScript 数字均为 64 位

对Object类中方法的深入理解

看一下API中关于Object的介绍: 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类. 所有对象(包括数组)都实现这个类的方法. 那么Object中到底有哪些方法,各自有什么应用呢? 这个问题也经常出现在面试中,如果平时没有关注,可能很难回答好,这里简单整理一下. 首先看一下java.lang.Object的源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2

Java中Object类的equals()和hashCode()方法深入解析

1.equals() 在初学Java的时候,很多人会说在比较对象的时候,==是比较地址,equals()是比较对象的内容,谁说的? 看看equals()方法在Object类中的定义: public boolean equals(Object obj){ return (this == obj); } 这是比较内容么?明显是比较指针(地址)么... 但是为什么会有equals是比较内容的这种说法呢? 因为在String.Double等封装类中,已经重载(overriding)了Object类的eq

Java中的Object类详细介绍_java

理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. 该类中主要有以下方法: toString(),getClass(),equals(),clone(),finalize(), 其中toString(),getClass(),equals是其中最重要的方法. 注意: Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为f

Object C学习笔记12-集合

这里讲到的集合是指Set集合,其实Array也是一种类型的集合.在Object C中提供了两个集合类NSSet和NSMutableSet.其实NSSet和NSArray性质一样,都是用于存储对象的. 然而Array集合和Set集合还是有区别的,主要是在于Set集合的搜索速度要比Array速度要快,NSArray和NSMutableArray 是一种有序集合,其存储的值在内存中是连续的,而NSSet和NSMutableSet是无需集合,在内存中的存储方式是不连续的,在NSSet,NSMutable

基本线程同步(四)在同步代码中使用条件

在同步代码中使用条件 在并发编程中的一个经典问题是生产者与消费者问题,我们有一个数据缓冲区,一个或多个数据的生产者在缓冲区存储数据,而一个或多个数据的消费者,把数据从缓冲区取出. 由于缓冲区是一个共享的数据结构,我们必须采用同步机制,比如synchronized关键字来控制对它的访问.但是我们有更多的限制因素,如果缓冲区是满的,生产者不能存储数据,如果缓冲区是空的,消费者不能取出数据. 对于这些类型的情况,Java在Object对象中提供wait(),notify(),和notifyAll()

在Fireworks中制作淡入淡出动画效果

淡出|淡入 淡入淡出动画效果 用fireworks做的淡入淡出效果,有人说看PNG格式看不出真正的步骤,所以在此补上这样一篇教程. 对象的淡入淡出效果是firewoks可以创建的普通效果之一,对两个链接对象进行插帧的时候,其中一个对象的不透明度设置为0%,一个对象的不透明度设置为100%,就可以获得淡入淡出效果. 制作步骤: 一.首先新建一个文件,画一个圆,在FILL面板中设置edge:feather:10,设feather的目的是在运动过程中边缘不至于太生硬,影响效果.点中圆,按F8键,选择t