🔥博客主页:【Zcleverjoy的博客】
❤感谢大家点赞👍收藏⭐评论✍
目录
一、常用数制
计算机的主要功能是处理各种信息,这些信息都必须经过数值编码后才能在计算机中存储,处理和传输。因为计算机是采用二进制数值存储信息和计算数据的,即以"0"和"1"两种代码进行存储,计算和传输信息,所示各种信息在计算机中都是二进制形式。 在计算机内部采用二进制数表示数据,而不是十进制数。这主要是因为采用二进制数具有其他进制所不具备的。 |
二进制的优点: 易于表示 节约设备 运算简单 可靠性强 |
1.数制的概念
数制也称计数制,是指用一组固定的符号和统的规则来表示数值的方法。
按照进位的方法进行计数,称为进位计数制。
如:
- 逢二进一
- 逢八进一
- 逢十进一
- 逢十六进一
- 进位计数制的几个要素
一种进位计数制包含一组数码符号和三个基本因素:
数码:一组用来表示某种数制的符号。 例如: 二进制的数码有:0和1;基数为2 八进制的数码有:0,1,2,3,4,5,6,7;基数为8 十进制的数码有:0,1,2,3,4,5,6,7,8,9;基数为9 十六进制的数码有:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f;基数为16 |
(1)、基数:某数制可以使用的数码个数。 (2)、数位:数码在一个数中所处的位置。 (3)、权:权是基数的幂,表示数码在不同位置上的数值。 |
2、r进制的一般表达式
在采用进位计数的数字系统中,如果只有r个基本符号(例如0,1,2,....,r-1)表示数值,则称其为r进制数。r进制数N用统一的表达式可表示为:
其中:是数码,r是基数,是权,n是整数部分位数,m为小数部分位数。
3、常用进制计数制“逢R进一,借一当R”
二、数制的相互转换
1、r 进制数转换成十进制数
任意r进制数"按权展开相加"法,即按照r进制的一般表达式写成按权展开后,各位数码乘以各自的权值累加,就可得到该r进制数对应的十进制数。
进制转化成十进制: 数码乘以各自的权的累加
例:
2、十进制转换成r进制数
- 整数部分:采用"除r取余,逆序排列"法。即将十进制整数不断除以r取余数,直到商为0,最先得到的余数是r进制整数的最低位,最后得到的余数是r进制整数的最高位。
- 小数部分:采用"乘r取整,顺序排列"法。即将十进制小数不断乘以r取整数,直到小数部分为0或达到要求的精度为止,最先取得的整数是r进制小数的最高位,最后得到的整数是r进制小整的最低位。
- 十进制转化成 r 进制
整数部分:除以r取余数,直到商为0,逆序排列。
小数部分:乘以r取整数,顺序排列。
[例如]:将转换成八进制数:
三、二进制数的算数运算
1、加法运算规则:
2、减法运算规则:
3、二进制,八进制,十六进制数之间的相互转换
由于二进制数与八进制数,十六进制数之间存在特殊关系:、
,即1位八进制数相当于3位二进制数1位十六进制数相当于4位二进制数。
(1)、二进制数与八进制数的互换
一位八进制数对应三位二进制数
1)、二进制数转换为八进制数
规则: "三位并一位".即以小数点为中心向左右两边分组,每3位为一组,两头不足3位补0,各组用对应的1位八进制数表示即可。
2)、八进制数转换成二进制数
规则: "一位拆三位",即把每1位的八进制数用对应的3位二进制数表示即可。
(2)、二进制数与十六进制数的互换
一位十六进制数对应四位二进制数
1)、二进制数转换为十六进制数
规则: "四位并一位".即以小数点为中心向左右两边分组,每4位为一组,两头不足4位补0,各组用对应的1位十六进制数表示即可。
2)、十六进制数转换成二进制数
规则: "一位拆四位",即把每1位的十六进制数用对应的4位二进制数表示即可。
(3)、总结
- 十进制转r进制(整数)方法:除r取余法,逆序排列
- 十进制转r进制 (小数)方法:乘r取整法,顺序排列
- r进制转十进制方法:以r为基数,按权位展开,求和
- 二进制转八进制方法:"三合一",用三位二进制表示一位八进制
- 八进制转二进制方法:"一拉三",用一位八进制表示三位二进制
- 二进制转十六进制方法:"四合 合一", ",用三位二进制表示一位十六进制
- 十六进制转二进制方法:"一 "一拉四",用一位十六进制表示四位二进制
四、数值在计算机中的表示
进入计算机中的各种数据,都要进行二进制编码的转换;同样,从计算机输出的数据,都要进行逆向的转换。
1、计算机中无符号数的表示
无符号数是相对于有符号数而言的,计算机中的无符号数指的是整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。
一个n位的无符号二进制数x的表示范围为:
2、计算机中带符号数的表示
机器数:把数值的"+""-"用 "0" "1" 表示
真值:机器数对应的用"+""-" 符号来表示的实际数
五、原码、反码和补码
运算带来问题的复杂性:
- 若要考虑符号位的处理,则运算变得复杂。为了解决此类问题,引入了多种编码。
- 常用的是:原码,反码和补码,其实只是对负数表示的不同编码。
1、原码
- 整数x的原码是:正数的数符位为0,负数的数符位为1,其他各位是x绝对值的二进制表示。
- 以整数为例,且取8位码长,8位原码的范围为-127~127.
如:
原码表示中,0有两种表示形式,即
2、反码
整数x的反码是:正数的反码与原码相同;负数的反码是数符位为1,其他各位为X的绝对值取反,即0变为1,1变为0.
如:
- 在反码表示中0也有两种表示形式,即
3、补码
- 整数X的补码是:正数的补码与原码,反码相同;负数的补码是数符位为1,其他各位为X的绝对值取反后并在最低位加1,即为反码加1。
- 如:
- 在补码表示中,0有唯一的编码:
5、结论
1、正数的原码,反码,补码相同,
负数的反码等于符号位不变,原码各位求反
负数的补码等于符号位不变,反码加1;
2、机器数的最高位是符号位,
0代表正号,1代负号;
3、在补码表示中,0有唯一的编码。
例:已知真值数求补码
六、定点数和浮点数
1、定点数表示法
- 定点整数是纯整数,约定小数点位置在有效数值部分最低位之后。
- 定点小数是纯小数,约定小数点位置在数符位与有效数值部分之间,
2、浮点数表示方法
- 为了表示特别大或特别小的数,在数学中有指数表示法(如=),在计算机中称为科学表示法(或称为科学计数法,如=1.23E9),在存储器中就是浮点数表示。
- 浮点数表示法:是指小数点可以任意浮动,即通过改变其指数部分来使小数点发生移动。例如:数123.45可以表示为:12.345*、1.2345*、0.12345*、0.012345*等形式。
- 为了统一浮点数的存储格式,美国电气和电子工程师协会 (institute ofelectrical and electronics engineers, iee)在1985年制定了IEEE754标准。对浮点数的存储格式作了严格的规定。
说明:
1. 需要调整指数p使尾数d满足1x,x的格式,其中"1."不存储;
2.存储时阶码等于规格化数中的指数p(习惯写成十进制)要加上127,即阶码=指数+127.因为指数可以是负的(-126-127),为了处理负指数情况,IEEE754要求指数加上127后再存储。
3.一般阶码确定了数的表示范围,阶码的位数越多,范围越大:尾数确定了数的表示精度,尾数的位数越多,有效精度越高。
4. 注意指数形式格式
(1)、单精度浮点数存储时占4个字节,即32位,
(2)、双精度浮点数存储时占8个字节,即64位,
七、计算机中的数据编码
- 字符编码---西文字符的编码---ASCII字符编码 (American Standard Code for Information Interchange,美国信息交换标准代码)
- 标准ASCII:二进制数最高位为0
- 128个常用字符,用7位二进制编码,从0到127
- 控制字符:0~32, 127 ; 普通字符:94个
例如: "a"字符的编码为,对应的十进制数是97;
- ASCII查询举例
在ASCII码表中,0-9,A-Z,a-z都是顺序排列,且小写字母比对应的大写字母的码值大32.
例如:
- ASCII码编码值大小比较:数字<大写字母<小写字母
如数字8,字母A,a的ascii码大小比较结果为:8<A<a
今天的文章 C语言学习笔记(一)·数值数据的表示分享到此就结束了,感谢您的阅读。如果对你有帮助的话请点赞吧!!
如有疑问请私信。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/87750.html