zoukankan      html  css  js  c++  java
  • 【学习笔记】【C语言】变量的内存分析

    计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。就好像酒店是以房间为单位的,每个房间都有一个唯一的房号,我们根据房号就能找到对应的房间。

    1. 变量的存储

    1> 所占用字节数跟类型有关,也跟编译器环境有关

    clip_image002

    2> 变量实例

    int b = 10;

    int a = 134;

    *内存由大到小寻址

    *只存储二进制形式

    *每个变量都有地址:第一个字节的地址就是变量的地址

    3> 查看内存地址的两种方式:%x和%p

    4>查看整数的二进制形式

    void putBinary(int n)
    {
        int bits = sizeof(n) * 8;
        while (bits-->0) {
            printf("%d", n>>bits&1);
            if (bits%4==0) printf(" ");
        }
        printf("
    ");
    }

    2. 负数在内存中的存储

    1 int main()
    2  {
    3     int b = -10;  
    4     return 0;
    5  } 

    在第3行定义了一个整型变量,它的值是-10。-10在内存中怎样存储的呢?其实任何数值在内存中都是以补码的形式存储的。

    • 正数的补码与原码相同。比如9的原码和补码都是1001
    • 负数的补码等于它正数的原码取反后再+1。(取反的意思就是0变1、1变0)

    那么-10的补码计算过程如下:

    1> 先算出10的二进制形式:0000 0000 0000 0000 0000 0000 0000 1010

    2> 对10的二进制进行取反:1111 1111 1111 1111 1111 1111 1111 0101

    3> 对取反后的结果+1:1111 1111 1111 1111 1111 1111 1111 0110

    因此,整数-10在内存中的二进制形式是:1111 1111 1111 1111 1111 1111 1111 0110

    3. 取值范围

    clip_image001

  • 相关阅读:
    什么是tomcat集群?
    cmd黑客入侵命令大全
    Linix基本命令
    Windows CMD命令大全
    python 函数1
    Python 集合(set)使用
    python 数据字典应用
    python 数据运算
    python 数据类型(元组(不可变列表),字符串
    python 数据类型(列表)学习笔记
  • 原文地址:https://www.cnblogs.com/dssf/p/4584584.html
Copyright © 2011-2022 走看看