Android中long类型对应Java/Jni/C++中的类型

来源:互联网 发布:sql 单个join on用法 编辑:程序博客网 时间:2024/06/05 15:15

1、Android的Java中

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63)
  • 最大值是 9,223,372,036,854,775,807(2^63 -1)
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L
  • 例子: long a = 100000L,Long b = -200000L。
    "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
2、Android的Jni中
     <1>libnativehelper/include/nativehelper/jni.h
   typedefint64_t jlong;   /* signed 64 bits */
 <2>bionic/libc/include/stdint.h
   typedef  __int64_t    int64_t;

     #if __LP64__

     typedef  long__int64_t;

     typedef unsigned long __uint64_t;

     #else

     typedef  long  long __int64_t;//走else分支

    typedef unsigned  long  long __uint64_t;

     #endif

     即:jlong ---> long long 类型对应

3、Android的Native的C++中

example:

  Parcel data;

  long long length;

  data.writeInt64(length);

 <1>frameworks/native/libs/binder/Parcel.cpp

  status_tParcel::writeInt64(int64_t val){

   }

    typedef      __int64_t     int64_t;  

   typedef long long __int64_t;

int、long、long long取值范围

unsigned   int   0~4294967295   
int   2147483648~2147483647 
unsigned long 0~4294967295

long   2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161

原创粉丝点击