• C语言中的变量


    1. 计算机需要处理数据

    2.数据需要保存在存储器上

    3. 计算机只能识别0或者1的二进制数据

    4.我们看到的,用到的所有数据在计算机中都是以二进制存储的

    5.内存中的相同的01二进制数据,以不同的编码,可以有不同的展现形式

    6. 十进制整数与二进制、八进制、十六进制相互转换

    十进制转其他进制,取余法

    二进制转八进制,每三位二进制转换为一位八进制

    二进制转十六进制,每四位二进制转为一位十六进制

    7. 原码、反码和补码的表示形式

    在计算机中,数值以补码的形式存储的

    正数的原码、反码、补码都一样,

    负数的原码,最高位是符号位,其他位是数据位

    负数的反码,符号位不变,其他位依次取反

    负数的补码,是反码加1

    8. 变量的定义

    定义一个变量,需要告诉计算机,该变量的类型、变量名,可以同时告诉计算机该变量的初始值是多少。

    变量的类型,决定了变量的存储方式,变量的长度(变量的取值范围),变量所能进行的操作

    无符号整数,最高位就是数值位,

    有符号整数,最高位就是符号位,

    变量名来标识这块存储空间,用户通过变量名来访问这个变量

    给变量赋值,实际上就是把这个值放到变量名所标识的存储空间中

    int  a = 5;

    9.整型变量

    short / int / long / long long这几种类型,这是有符号的类型

    可以用unsigned来修饰这几种类型,变成无符号的数据类型,即第一位是数值位,而不是符号位

    short  -32768~32767     

    unsigned short     0~65535

    需要特别注意的是,在计算机中,不看你怎么存,只看你怎么读,如:

    unsigned short  b1 ; //系统会在内存中给b1变量开辟两个字节的存储空间

        b1 = -10;  //把-10存储到b1 这块存储空间中

     // -10补码 , 原码:1000 0000 0000 1010

                            //  反码:1111 1111 1111 0101

                            //  补码:1111 1111 1111 0110

    所以,在b1变量中存储的 内容 就是 1111 1111 1111 0110

                            

        //在计算机中,不看你怎么存,只看你怎么读

    因为,b1的数据类型是unsigned short, 如果把b1中的内容按%d的形式输出的话,原来最高位1就不再是符号位,而是数值位了,所以把1111 1111 1111 0110转换为十进制数就是 65526

        printf("%d ", b1); // 65526

        printf("%x ", b1);

        

        short b2 = b1; //如果定义一个有符号的变量b2,把b1变量中的值,即 1111 1111 1111 0110赋值给b2后, 这一串二进制的最高位1,又变成符号位了,表示负数, 1111 1111 1111 0110的补码转换为十进制就是-10

        printf("%d ", b2); //-10

  • 相关阅读:
    Java内存模型
    mysql通过“延迟关联”进行limit分页查询优化的一个实例
    RabbitMQ(二):相应机制、持久化、负载均衡分发
    RabbitMQ(一):安装配置、用户权限
    S7.Net与西门子PLC通讯——纯新手必看
    [.net core] 创建和发布NuGet包 (dotnet CLI)
    [收藏]2018年10月最新全网可用接码打码平台 [若快已挂]
    如何写出无法维护的代码
    C# ——Parallel类
    .net语音播放,自定义播报文字
  • 原文地址:https://www.cnblogs.com/ljcgood66/p/5281249.html
Copyright © 2020-2023  润新知