zoukankan      html  css  js  c++  java
  • 数据类型说明 整形

    1 整型常量(^符号代表指数)

    1.1 十进制整数

    如:

    100, -11,0。

    1.2 八进制整数

    以0(数字)开头的数。

    如:

    0123表示八进制数123

    转成十进制数方式 1*8^2 + 2*8^1 + 3 * 8^0 = 83

    -011表示八进制数-11

    按同样的方式转成十进制为-9

    1.3 十六进制整数

    以0x开头的数是十六进制数

    如:

    0x123表示十六进制数123

    转成十进制数的方式为 1*16^2 + 2*16^1 + 2*16^0 = 291

    -0x12代表十六进制数-12

    按同样的方式转成十进制数为-18

    2 整型变量

    2.1 整型数据在内存中的存放形式

    整型数据在内存中是以二进制形式存放的如果定义了一个整型变量i

    int i;

    i = 10;

    十进制数10的二进制形式为1010,以下按整型占两个字节表示

    0000 0000 0000 1010

    但是实际上,数值是以补码的形式表示的,一个正数的补码和其原码的形式相同

    负数的补码,求负数的补码方法是,将该数的绝对值的二进制形式,按位取反再加1

    如,-10

    -10 的绝对值是10

    得到10的二进制形式

    0000 0000 0000 1010

    把得到的二进制形式按位取反得到

    1111 1111 1111 0101

    再把得到的二进制再加1得到

    1111 1111 1111 0110

    因为int定义时是有符号的,所以最左边的一位是符号位

    如果这个符号位是0代表这个数是正数,如果符号位为1代表这个数是负数

    2.2 整型变量的分类

    2.2.1 基本整型(占2个字节)

    有符号基本类型 int 数据范围 -2^15 ~ 2^15 - 1

    无符号基本类型 unsigned int 数据范围 0 ~ 2^16 - 1

    2.2.2 短整型

    有符号短整型 short 数据范围 -2^15 ~ 2^15 - 1

    无符号短整型 unsigned short 数据范围 0 ~ 2^16 - 1

    2.2.3 长整型

    有符号长整型 long 数据范围 -2^31 ~ 2^32 - 1

    无符号长整型 unsigned long 数据范围 0 ~ 2^32 - 1

    根据编译器不同可能有些不同

    2.3 整型变量的定义

    C规定在程序中所用到的变量都必须在程序中定义即强制类型定义

    对变量的定义一般放在一个函数的开关的声明部分(也可以放在函数中某一部分程序内,但作用域只限它所在的分程序)

    2.4 整型数据的溢出

    以下的整型占2个字符,现在用到的编译器(比如我用vs2005)是占四个字节

    先看下程序

    #include <stdio.h>

    void main()

    {

      int a, b;

      a = 32767;

      b = a + 1;

      printf("%d, %d", a, b);
    }

    得到的运行结果为 32767 -32768

    说明,先看两个变量的二进制

    a  0111 1111 1111 1111

    b = a + 1 所以得到的二进制为

    b  1000 0000 0000 0000

    得到的这个二进制是-32768的补码,现在转下

    得到绝对值 32768 的二进制

    1000 0000 0000 0000

    再按位取反得到

    0111 1111 1111 1111

    再加1得到

    1000 0000 0000 0000

    这就得到与b二进制一样的结果

    所以在定义数据要看好再定义

  • 相关阅读:
    使用secureCRT连接VMware-Ubuntukylin虚拟机
    java使用POI jar包读写xls文件
    SimpleDateFormat 相关用法
    ORACLE之表
    ORACLE之PACKAGE-游标变量
    PHP多进程学习(三)__代码案例来了解父进程与子进程的执行顺序
    PHP多进程学习(二)__fork起多个子进程,父进程的阻塞与非阻塞
    PHP多进程学习(二)__来初步了解一下PHP多进程及简单demo
    Python学习【三】
    Python学习【二】
  • 原文地址:https://www.cnblogs.com/qkhhxkj/p/2089074.html
Copyright © 2011-2022 走看看