美文网首页
计算机存储原理及C语言变量

计算机存储原理及C语言变量

作者: 排骨炖豆角不要豆角 | 来源:发表于2018-03-12 21:01 被阅读0次

    计算机的基础当然是变量在其中的应用,这样会将计算过程变的简单,也会为每个计算的单元提供指向性,每种语言都离不开变量的帮忙。

    计算机存储的原理

    二进制、八进制、十六进制是计算机中常用的存储方式,其中多少进制就是逢多少进一位。
    二进制:由0和1表示的数字,逢2进1.
    八进制:由0-7表示的数字,逢8进1.
    十六进制:由0-9和A-F,共16个数表示的数字,逢16进1.

    英文占一个字节

    目前,计算机的存储是以二进制为主的。通常,一个字节(byte)由8位构成(8bit),一个字节可存储的最大的量是(11111111)2=255。所以,26个英文字母的大小写(共52个)使用一个字节就能够完全表达。

    中文占两个字节

    对于中文而言,一个字节所能产生的255个数字,远少于中文的汉字数,所以计算机科学家们使用两个字节存储汉字,两个字节能存储(1111111111111111)2=65535个量,这就满足了汉语的要求。

    综上,可以实现一下手动的计算功能了:

    1 byte=8 bits
    1Kb=1024 byte=210 bytes
    1Gb=1024Mb=1024*1024Kb=10243 bytes

    那么1Gb可以存储多少汉字呢?

    计算方法为: 1Gb=10243/2,由此可见这是非常大的量。

    C语言变量类型介绍

    C语言的变量类型主要包括以下几个方面:

    • 整数类型
    • 实数类型
    • 常量
    • 字符串

    整数类型

    整数是正无穷到负无穷,但C中分为短整型(16位)普通整形(32位)长整型(64位)
    使用下面例子测试:

    #include <stdio.h>
    void main(void)
    {
            int x=4294967296;
            printf("%d\n",x);
    }
    
    编译不能通过,报错为:
    In function ‘main’:
     warning: overflow in implicit constant conversion [-Woverflow]
      int x=4294967296;
    

    发现上面的错误是溢出,无法实现输出的printf功能,这也是符合计算机规则;删除末尾的数字6,程序运行正常,无错误。

    ** notes: 整数分为有符合和无符号,这个需要在仔细查看下。

    实数类型

    实数中包括浮点数、科学技术法等,科学技术法里面包含尾数、基数、指数。
    浮点数分为单精度(float)和双精度(double),具体信息如下:

    类型 存储字节 最小值 最大值
    float 4位 ~1.79e-308 ~1.79e308
    double 8位 ~3.4e-38 ~3.4e38

    字符类型

    英文键盘上的符号均可以ASCII对应,ASCII码中对应的需要一个字节。使用关键字 char 来声明字符变量

    char c="c";
    printf("c=%d\n",c);
    
    输出结果为:
    c=99
    

    ** notes:字符型数据也存在正负,系统不同,出现的情况也可能不一样,有些系统为singed,有的则为unsigned。

    常量

    常量分为符号常量、直接常量和字符常量等,实际应用中,比如PI 值,,使用PI 则为符号常量,可以通过下面的方法进行定义:

    #include <stdio.h>
    #define  PI  3.14   /* 这步是定义PI值为3.14,以便于进行下面的计算*/
    void main(void)
    {
      float r=2.0;
      float dd=2*PI*r;
      printf("%.2f\n",dd);
    }
    
    编译运行,结果为12.56.
    

    ** notes: #define后面不要添加分号,这是错误的做法。此外,常量符号一般选择使用的是大写的形式。

    定义的变量

    变量声明主要使用的是:

    (1)  int  x1  x2;
    (2)  int  x1,
         x2;
    (3)  char ch;
    (4)  double d_yes;
    

    变量是计算的开始,注意相同的变量名在使用的时候不要出现打错字的情况。

    变量初始赋值

    对于每个变量,只是声称还是不够的,这样并不会为它分配内存,只有赋值操作使这个变量有了初始值才能真正访问这个变量。比如int x=3,具体的计算机的过程如下:
    (1)分配变量名;
    (2)为变量名分配字节块;
    (3)关联内存块和变量名;
    (4)运行这个语句,将初始值赋给这个变量。

    同时检测了一下 &变量名的输出什么?

    #include <stdio.h>
    
    void main(void)
    {
      int x=10;
      printf("%d\n",&x);
    }
    输出为:571675020
    

    这说明printf("%d\n",&x);这个语句只是打印x的变量在内存的存储地址而已,并不是变量本身。可以使用scanf函数与&x得到键盘输入的变量值,这个是需要进一步了解的。

    相关文章

      网友评论

          本文标题:计算机存储原理及C语言变量

          本文链接:https://www.haomeiwen.com/subject/mrenfftx.html