(第14章)LinuxC本质中计算机中数的表示

一、不同进制之间的换算

1.二进制的最高位和最低位

在这里插入图片描述

2.十进制转二进制:除二反序取余法

在这里插入图片描述

3.八进制和十六进制

在这里插入图片描述

二、整数的加减运算

本节举的例子都用8个bit表示一个数,实际计算机做整数加减运算的操作数可以是8位、16位、32位甚至64位的。

1.Sign and Magnitude表示法

  • 0表示正,1表示负,剩下的7位表示绝对值的大小,所以加法逻辑如下
    在这里插入图片描述
  • 减法逻辑如下
    在这里插入图片描述
  • 缺点如下:
    在这里插入图片描述

2.十进制的加减法

在这里插入图片描述
在这里插入图片描述

3.二进制减法方法1(用的少,0的表示不唯一,但是自己运算的速度快)

在这里插入图片描述
在这里插入图片描述

4.二进制减法方法2(用的多,但是自己的运算速度不快)

在这里插入图片描述
在这里插入图片描述

5.有符号数和无符号数

在这里插入图片描述

三、浮点数

1.浮点数的基本概念

(1)我们的模型由三部分组成:符号位、指数部分(表示2的多少次方) 和尾数部分(小数点前面是0,尾数部分只表示小数点后的数字) 。

(2)浮点数的格式
在这里插入图片描述
我们规定尾数部分的最高位必须是1,也就是说尾数必须以0.1开头,对指数做相应的调整,这称为正规化(Normalize)。
eg:
在这里插入图片描述
在这里插入图片描述

2.浮点数相加:做浮点运算时要注意精度损失问题

(1)
在这里插入图片描述
(2) 因此在绝大多数平台上,一个浮点数的所有bit是0就表示0值。
在这里插入图片描述
“用0初始化”的意思是变量 i 、变量 d 和数组元素 a[1]~a[9] 的所有字节都用0填充,或者说
所有bit都是0。
一个整数的所有bit是0都表示0值,但一个浮点数的所有bit是0一定表示0值吗?严格来说不一定。但是,在绝大多数平台上,一个浮点数的所有bit是0就表示0值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢打篮球的普通人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值