zoukankan      html  css  js  c++  java
  • 获取c或者c++里面的数据类型的范围

    有时候我们在coding的过程中经常需要知道某个变量所能表示的最大或者最小值,在程序设计的基础课上老师肯定也都讲过,只是那么多的数值没办法都记住,下面是我的一些经验,这些也是一个程序员应该掌握的基本知识。

    下面只以int类型举例,默认 int 32位。

    首先要明白的是,整数采用的是补码表示方法,忘了补码概念的可以参考http://baike.baidu.com/view/377340.htm 。对于有符号整数,最高位是符号位,1表示负数,0表示正数。+0和-0的补码均为:所有位全部置0。

    int 的最大值二进制表示为:01111111 11111111 11111111 11111111    即2^31-1

    int的最小值二进制表示为:10000000 00000000 00000000 00000000  即-2^31 (补码表示的负数的绝对值求法:将包括符号位在内的所有位取反,然后加1,得到的结果视作一个无符号整数即为该负数的绝对值)

    c++中std命名空间中定义了每个类型的最大、最小值等;对于浮点型数据还定义了对应的无限大的数

    cout<<std::numeric_limits<int>::max()<<endl;  int最大值

    cout<<std::numeric_limits<int>::min()<<endl;   int最小值

    cout<<std::numeric_limits<double>::infinity()<<endl;  double 的无限大

    c语言中的头文件limits.h(c++对应头文件为climits)定义了整形数据类型的表达值范围(宏定义),该头文件定义的宏可以参考http://www.cplusplus.com/reference/climits/

    包含了该头文件后可以输出如下:

    cout<<INT_MAX<<endl;  int最大值
    cout<<INT_MIN<<endl;  int最小值

    float.h 定义了double float的最大最小值,具体参考http://www.cplusplus.com/reference/cfloat/

    ---------------------------------------------------------

    如果想要查看某个整形数据的各个二进制位的值,可以用如下函数

    void fun( Type n)  //type是某个整形类型如int long char short等,使用时要具体定义

    {
      bitset<8*sizeof(n)>b(n);
      cout<<b<<endl;
    }

    【版权声明】转载请注明出处 http://www.cnblogs.com/TenosDoIt/archive/2013/04/17/3026232.html

  • 相关阅读:
    python的基本数据类型
    python数据基本运算处理===循环
    多态、多态性和鸭子类型
    菱形问题、类的组合
    类的继承
    面向对象基础
    软件开发三层架构
    logging模块
    json与pickle模块
    Webbrowser模拟百度一下子点击事件
  • 原文地址:https://www.cnblogs.com/TenosDoIt/p/3026232.html
Copyright © 2011-2022 走看看