程序设计基础--C语言【一】

课堂笔记

1.整数数制

整数数制包括二进制数、八进制数、十进制数、十六进制数

1.1.十进制数

基数为10,由0到9这十个数构成。例如,4261可以看作是:

(4*1000)+(2*100)+(6*10)+(1*1)=

(4*10^3)+(2*10^2)+(6*10^1)+(1*10^0)=4261

1.2.二进制数

基数为2,由0和1这两个数构成。

★二进制数向十进制数转换

例如:100₂=4₁₀

解析:1    0    0   (二进制数)

            2    1   0     (对应位置)

(0*2^0)+(0*2^1)+(1*2^2)=4

二进制----十进制基数为2.

★十进制数向二进制数转换

​​​​例如:15₁₀=1111₂

解析:15用短除法一直除2,直到最后为0.

继续二进制的补充(由于计算机中用二进制数表示,在这里多些知识点)

★二进制补码表示

为了让正数负数的表示一致从而有了二进制的补码。

最左边为最高有效位,最右边为最低有效位。

二进制补码中,最高位是符号位:0表示正数,1表示负数。

正数的二进制补码和普通的二进制补码是一样的,负数则不然。

负数补码步骤:

  1. 写出该负数绝对值的二进制数
  2. 二进制数取反
  3. 加1

例如:-2的32位二进制补码表示

00000000000000000000000000000010(-2的绝对值)

1111111111111111111111111111111111101(取反)

                                                             +1(加一)

1111111111111111111111111111111111110(-2的二进制补码表示数)

-1的所有位均为1

最大的正值是除符号位是0,其他位都是1。

对n位来说,最大的正值是2^(n-1)-1

                    最小的负值是2^(n-1)

(上述公式由等比数列求和而得)

例如:n=8时,最大的正值是127最小的负值是-128

1.3.八进制数

基数为8,由0到7这八个数构成。

在C语言中,以0开头的数表示八进制的形式。

★八进制数向十进制数转换

例如:1025₈=533₁₀

解析:(5*8^0)+(2*8^1)+(0*8^2)+(1*8^3)=533

与二进制到十进制类同。

★十进制数向八进制数转换

例如:533₁₀=1025₈

解析:利用短除法除8,一直除到0为止。

与十进制到二进制类同。

★八进制数向二进制数转换

八进制中的每个数字写出对应的3位二进制数再组合。

例如:4261₁₀=0001000010100101₂

解析:1            0             2              4                5 (八进制表示)

        001         000         010          100            101  (二进制表示)

★二进制数向八进制数转换

二进制中的每三个分为一组写出对应的数值

将八进制向二进制转换的过程倒过来就是。

1.4.十六进制数

基数为16,数字由0到9构成,字母由A到F构成(大小写均可)

在C语言中,以0x开头的数表示十六进制的形式。

★十六进制数向十进制数转换

例如:10A5₁₆=4261₁₀

解析:(5*16^0)+(10*16^1)+(0*16^2)+(1*16^3)=4261

与二进制到十进制类同。

★二进制数向十六进制数转换

二进制中的每4个分为一组写出对应的数值

例如:0001000010100101₂=10A5₁₆

解析:1               0             A                5 (十六进制表示)

        0001        0000        1010          0101  (二进制表示)

★十六进制数向二进制数转换

十六进制中的每个数字写出对应的4位二进制数再组合。

将二进制向十六进制转换的过程倒过来就是。

★十六进制数向八进制数转换

先由十六进制转二进制

再由二进制每三个一组转成八进制

★八进制数向十六进制数转换

与上同理

先由八进制转二进制

再由二进制每四个一组转成十六进制

2.数据类型

2.1.引入

 数据类型: 基本类型、构造类型、指针类型、 空类型(void)。

                   基本类型:整型、实型(浮点型)、字符型(char)、枚举类型(enum)。

                              整型:基本整型(int)、长整型(long)、短整型(short)、无符号整型(unsigned)

                              实型(浮点型):单精度实型(float)、多精度实型(double)

                  

                  构造类型:数组类型、结构体类型(struct)、共用体类型(union)

2.2.类型修饰符

signed和unsigned可以用来修饰long int和short int,但不能修饰double和float。

有符号整型和无符号整型的区别:

无符号:最高位表示数据位

有符号:最高位表示符号位,即为:最高位0表示正数;最高位1表示负数。

当修饰符被单独使用时,则系统默认其为int。

如:signed表示signed int

       unsigned表示unsigned int

       long表示long int等。

int型数分配2个字节的存储空间,那么对于

有符号整数,由于最高位为符号位,所以最小值为-2¹⁵(-32768);最大为(32767)

无符号整数,由于最高位为数据位,所以最小值为0;最大为2¹⁶-1(62235)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值