C语言基础(二)

一、数据类型的定义

1)变量

  1.变量的定义:

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

  2.变量的赋值:

    变量名 = 值;

  3.变量定义与赋值

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

标示符的命名规则:

1、字母、数字、下划线

2、不能以数字开头

3、见名知义

4、不能和同一函数内的其他标示符重复

5、不能使用C语言关键字

6、区分大小写

2)常量的定义:

    1、const 数据类型 常量名

    2、【宏定义】#deifne 常量名 值

注意:

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

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

 

二、进制:

(一)二进制:

  1.二进制逢二进一,

  2.所有的数组是0、1组成

 

  1)十进制转二进制:

    除二反序取余法:1.将十进制数每次除以2

            2.取出余数

            3.按照结果倒叙依次获取结果

  2)二进制转十进制:

    权值法:  1.将二进制数各个位数从0位开始乘以2的N幂

          2.将各个位数的结果相加

(二)八进制:

  1.八进制逢八进一

  2.所有的数组是0到7组成

  

  1)十进制转八进制:

    除八反序取余法:1.将十进制数每次除以8

            2.取出余数

            3.按照结果倒叙依次获取结果

 

(三)十六进制:

  1.十六进制逢十六进一,

  2.所有的数组是0到9和A到F组成 字母不区分大小写

  

  1)十进制转八进制:

     除十六反序取余法:1.将十进制数每次除以16

              2.取出余数

              3.按照结果倒叙依次获取结果

*进制在程序中打印(printf)

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

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

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

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

注意:

在程序中没有办法表示一个二进制数

 

三、原码、反码、补码

一个有符号的整型数据可以分为两部分

  1.一部分是符号位,一部分是数字位

  3.无符号数据类型只包含数字位部分

注意

溢出:在数据进行操作的时候会导致超出数据类型大小,会向前位进1,多于原始数据类型大小,会被系统自动舍弃 保留从后面开始数据类型大小的位数 

 

四、sizeof()

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

  int value  =sizeof(变量名);

  int value = sizeof(数据类型) sizeof 数据类型

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

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

 

五、输出和输入:

1)输出字符的两种方式:

  1、printf("%c",变量)

  2、putchar(字符)

2)输入字符的两种方式:

  1、scanf("%c",&b变量)

  2、变量=getchar()

 

六、数据类型:

1)字符型:

  1.char 用于存储一个单一的字符

  2.在格式化输入printf("%c",变量)通过占位符%c来接收的

  3.每一个char类型都对应在ASCII中有具体的值

例如:数字【0】对应的ASCII值为48

字母【A】对应的ASCII值为65

 

2)浮点型:

  1.float 用于存储带有小数的数据

  2.在格式化输入printf("%f",变量)通过占位符%f来接收的

  3.double 用于存储带有小数的数据 数据长度比float更长

注意:因为将小数转化为二进制时不是一个精确的值,所以浮点型都会有数据偏差

3)转义字符:

  计算机会使用一些字符来完成程序设计,如果在编程中想使用这些字符的本意,需要通过【\】来转义

注意:想在控制台中输出%  需要使用【%%】

 

课后练习题(答案在后面)

  1.八进制必须以_____开头,十六进制必须以_______开头。

  2.标识符只能由_______、_______和_______组成。

  3.在计算机中的进制表现形式有三种,分别是_____、 _______、 ________。

  4.C 语言提供了 sizeof 运算符,该运算符主要用于________。

  5.二进制和八进制相互转换

    5.1   111 010 101 011 转换为八进制后结果为?

    5.2   76321 转换为二进制结果为?

  6.二进制和十六进制相互转换

    6.1  1111 1010 1101 1011 转换为十六进制后结果为?

    6.2   a6b2f1 转换为二进制结果为?

  7.请写出-8的原码、反码、补码

  8.计算如下程序结果

    8.1short a = 0xfffe;

      printf("%d\n", a); //结果为多少?

 

    8.2unsigned short a = 0xfffe;

        printf("%u\n", a); //结果为多少?

 

    8.3short a = 0x7fff + 2;

        printf("%d\n", a); //结果为多少?

 

    8.4unsigned short a = 0xffff + 5;

        printf("%u\n", a); //结果为多少?

 答案

1.  0   0x

2.数字、下划线、字母

3.二进制,八进制,十六进制

4.求出数据类型在内存中占的大小,单位为字节

5.1   7253

5.2   111 110 011 010 001 

6.1    f9db

6.2    1010  0110 1011 0010 1111 0001

7 .原码:  1000 1000

 反码:1111 0111

 补码:1111 1000

8.1    -2

8.2    65534

8.3    -32767

8.4 4

 

转载于:https://www.cnblogs.com/Riunv/p/10668240.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值