最后
文章到这里就结束了,如果觉得对你有帮助可以点个赞哦
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
任意R进制数据按权展开、相加即可得十进制数据。
2)十进制转R进制
用十进制数除以R,记录每次余数,若商不为0,则继续除以R,直至商为0。余数从下至上记录,排成由左到右。
3)m进制转n进制
借助十进制作为中间数
2进制和16进制转换,可以进行分解,位分四位.。(2进制转8进制)
例:将(4AF8B)16转换为二进制数.
解: 4 A F 8 B
0100 1010 1111 1000 1011
备注:小数不考
数的表示
-
机器数:各种数值在计算机中表现的形式,其特点是使用二进制计数制,数的符号用0和1表示,小数点则隐含,不占位置。
-
正数符号位为0,负数符号位为1
-
定点表示法分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定
-
纯小数:约定小数点的位置在机器数的最高数值位之前
-
纯整数:约定小数点的位置在机器数的最高数值位之后
-
真值:机器数对应的实际数值
数的编码方式
带有符号数有下列编码方式:
-
原码:一个数的正常二进制表示,最高位表示符号,数值0的源码有两种形式:+0(0 0000000)或者-0(0 0000000)
-
反码:正数反码就是源码,负数反码除符号位在原码基础按位取反
-
补码:正数补码就是源码,负数反码+1
-
移码:补码的符号位取反
浮点数的表示
-
浮点数:表示方法为N=F*2^E,其中E称为阶码,F称为尾数;类似于十进制的科学计数法,如85.125 = 0.85125 * 10^2 ,二进制如101.11 = 0.101011 * 2^3
-
在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号占最高位(正数0或者负数1),其表示格式如下:
N=F*2^E
| 阶符 | 阶码 | 数符 | 尾数 |
| — | — | — | — |
| 阶码的符号位 | E | 整个数N的符号位 | F |
- 尾数的表示采用规格化方法,也即带符号尾数的补码必须为1.0xxx(负数)或者0.1xxx(负数),其中x可为0或者1
浮点数运算:
-
对阶(使两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就右移几位)
-
尾数计算(相加,若是减运算,则加负数)
-
结果规格化
算术运算和逻辑运算
-
逻辑与& :两个都为1才为1,其余都是0
-
逻辑或| :只有两个都为0才为0,其余都是1
-
异或xor:同0非1
-
逻辑非!:0非是1,1非是0
-
逻辑左移<< : 二进制数整体左移n位,高位若溢出则舍去,低位补0
-
逻辑右移>>: 二进制数整体右移n位,低位若溢出则舍去,高位补0
系统编码传输中检查是否正确,需要校验码来完成这项工作。
- 码距:两个合法代码对应位上编码不同的位数称为码距,又称海明距离。举例如下:10101和00110从第一位开始依次有第一位、第四、第五位不同,则海明距离为3。码距越大越利于纠错和检错。
奇偶校验
-
奇偶校验码:在编码中增加1位校验位来使编码中的1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变成2。
-
奇校验:编码中含有奇数个1,发送给接收方,接收方收到后会检查1是否是奇数个。
-
偶校验同理。
最简单的校验,只能检查1位错误,且不能纠错。
循环冗余校验码CRC
CRC只能检错,不能纠错,其原理是找出一个能整除的多项式的编码,因此首先要将原始保温除以多项式,将所得的余数作为校验位添加在原始报文之后,作为发送数据发送给接收方。
| 数据位 | 校验位 |
| — | — |
-
校验码是由信息码产生的,校验码越长,检验能力越强
-
求校验码采用模2运算(异或运算)
求解循环冗余码案例:
原始报文11001010101 ,多项式为 x^4 + x^3 + x + 1。对其进行CRC编码后结果。
求得余数0011(校验码位置应和补位相等),最后的11001010101 0011
海明码
知乎:答主讲的很好
-
海明码:本质也是利用奇偶性来检查和纠错的检验方式,构成方法是在数据位之间的确定位置插入k个校验位,通过扩大码距实现检错和纠错。
-
设数据位是n位,校验位为k位,则n和k必须满足一下关系:2^k - 1 >= n+k
加入n是4位,那么 k=3
例子:
求信息1011的海明码。
-
求校验码k的位数,k=3
-
校验码个数和信息码个数和,一次从左到右编码
-
2^n 位是校验码
-
分解信息码位数,如 7 = 4 + 2 + 1
-
观察校验位决定哪些信息位
算法刷题
大厂面试还是很注重算法题的,尤其是字节跳动,算法是问的比较多的,关于算法,推荐《LeetCode》和《算法的乐趣》,这两本我也有电子版,字节跳动、阿里、美团等大厂面试题(含答案+解析)、学习笔记、Xmind思维导图均可以分享给大家学习。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
写在最后
最后,对所以做Java的朋友提几点建议,也是我的个人心得:
-
疯狂编程
-
学习效果可视化
-
写博客
-
阅读优秀代码
-
心态调整
https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**
写在最后
最后,对所以做Java的朋友提几点建议,也是我的个人心得:
-
疯狂编程
-
学习效果可视化
-
写博客
-
阅读优秀代码
-
心态调整