zoukankan      html  css  js  c++  java
  • C基础学习笔记——01-C基础第04天(数据类型与运算符)

    在学习C基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。

    01-C基础第04天(数据类型与运算符)

    目录:

    1、数据类型的定义
    2、进制
    3、计算机内存数值存储方式
    4、sizeof关键字
    5、整型
    6、char类型
    7、实型(浮点型):float、double
    8、类型限定符
    9、字符串格式化输出和输入

    1、数据类型的定义

    变量的定义

    数据类型 变量名【标识符】

    变量的赋值

    变量名 = 值;

    数据类型 变量名【标识符】= 值

    变量在使用前必须先定义,定义变量前必须有相应的数据类型

    标识符命名规则:
    (1)字母、数字、下划线

    (2)不能以数字开头

    (3)见名知义

    (4)不能和同一函数内的其他标识符重复

    (5)不能使用C语言关键字

    (6)区分大小写

    举例判断

    ABC

    --abc.

    123_bac

    a_b_123

    常量的定义:

    (1)const 数据类型 常量名

    (2)【宏定义】#define 常量名 值

    注意:

    (1)通过#define定义的常量是根据值来匹配数据类型的

    (2)const修饰的常量是不安全的,可以通过指针来修改

    2、进制

    数据在计算机中都是以二进制补码的形式存储的!

    二进制

      二进制逢二进一,所有的数组是0、1组成

    10+1 = 11

    11+1 = 100

    十进制转二进制——除二反序取余法

    1987 = 0111 1100 0011

     二进制转十进制——权值法

    八进制

      逢八进一,所有的数组是0到7组成

    十进制转八进制——除八反序取余法

    八进制转化为二进制——八四二一法则:将各个位数的二进制用十进制中的数字来表示,多余的二进制数,通过数字相加就可以得到二进制的数据

    十六进制:

      逢十六进一,所有的数组是0到9和A到F组成,字母不区分大小写

    十进制转十六进制——除十六反序取余法

    十六进制转化为二进制——八四二一法则:将各个位数的二进制用十进制中的数字来表示,多余的二进制数,通过数字相加就可以得到二进制的数据

    进制在程序中打印:

    int a = 10;//十进制中的10

    int b = 010;//八进制中的10,在程序中定义一个八进制数需要在数前面加上0区分

    int c = 0x10;//十六进制中的10,在程序中国定义一个十六进制数需要在数前面加上0x区分

    int d = 0X10;//十六进制中的10

    %d //将数据按照十进制输出

    %o //将数据按照八进制输出

    %x //将数据按照十六进制小写输出

    %X //将数据按照十六进制大写输出

    3、计算机内存数值存储方式

    在计算机系统中,数值一律用补码来存储,主要原因是:

    (1)统一了零的编码

    (2)将符号位和其它位统一处理

    (3)将减法运算转变为加法运算

    (4)两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃
    溢出:在数据进行操作的时候会导致超出数据类型大小,会向前位进1,多于原始数据类型大小,会被系统自动舍弃,保留从后面开始数据类型大小的位数

    练习:用生辰年份年去生辰日期

     1992 - 326 = ?

    步骤:

    (1)将十进制转化为二进制

    (2)加符号位将数据变为原码

    (3)转化为反码

    (4)将反码+1转化为补码

    (5)计算补码

    (6)将数据转化为10进制

    2+128+512+1024 = 1666

    4、sizeof关键字

    求出数据类型在内存中占的大小

    int value = sizeof(变量名);

    注意:根据32位操作系统获取的数据类型大小

    char(字符型)【1】<short(短整型)【2】<=int(整型)【4】| float(单精度浮点型)【4】 | long(长整型)【4】<long long(长长整型)【8】 | double(双精度浮点型)【8】

    5、整型

    注意:
    (1)整型数据在内存中占的字节数与所选择的操作系统有关。虽然 C 语言标准中没有明确规定整型数据的长度,但 long 类型整数的长度不能短于 int 类型, short 类型整数的长度不能短于 int 类型。
    (2)当一个小的数据类型赋值给一个大的数据类型,不会出错,因为编译器会自动转化。但当一个大的类型赋值给一个小的数据类型,那么就可能丢失高位。

    6、char类型

    字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(' ')把字符括起来。

    字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。char的本质就是一个1字节大小的整型。

    ASCII 码大致由以下两部分组成

    (1)ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。

    (2)ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。数字 127 代表 Del 命令。

    7、实型(浮点型):float、double

    在C语言中, 浮点型变量分为两种: 单精度浮点数(float)、 双精度浮点数(double), 但是double型变量所表示的浮点数比 float 型变量更精确。

    8、类型限定符

    限定符

    含义

    extern

    声明一个变量,extern声明的变量没有建立存储空间。

    extern int a;

    const

    定义一个常量,常量的值不能修改。

    const int a = 10;

    volatile

    防止编译器优化代码

    register

    定义寄存器变量,提高效率。register是建议型的指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就生效,如果没有空闲寄存器,那么register无效。

    9、字符串格式化输出和输入

    (1)字符串是内存中一段连续的char空间,以''(数字0)结尾。

    (2)字符串常量是由双引号括起来的字符序列,如“china”、“C program”,“$12.5”等都是合法的字符串常量。
    每个字符串的结尾,编译器会自动的添加一个结束标志位'',即 "a" 包含两个字符'a'和’’。

    在学习C基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。

  • 相关阅读:
    Redis下载地址
    form序列化
    隐藏GET请求URL参数
    IntelliJ IDEA中显示方法说明快键键
    Myeclipse2014在线安装SVN插件
    Spring Cloud Gateway 集成 Sentinel 网关限流(2)
    Spring Cloud Gateway 集成 Sentinel 网关限流(1)
    Spring Cloud Gateway 集成 Nacos 实现请求负载
    微服务网关之Spring Cloud Gateway
    Nacos 的安装
  • 原文地址:https://www.cnblogs.com/Alliswell-WP/p/C_BasicLearning_04.html
Copyright © 2011-2022 走看看