Day4学习记录

一、行业信息

1.信息论知识

(1)信息的本质:消除世界的不确定性

(2)如何度量信息:利用概率的不确定性

不确定度——信息熵

*类比名人游戏:信息熵即一个问题的最少提问次数。

(公式为对数的原因:log(x*y)=logx+logy, log相加就是概率相乘 底换为2 万物皆为二进制 万物皆为bit)

(3)capacity-achieving:容量可达

channel capacity(信道容量):单位时间能传达的信息量。

类似于对方能还原你发送的信息的上限,是通信在理论上存在的上限。

(4)信道容量常用一个词来定义——最大互信息  o.疑义度

(5)各种可能导致信息损失的因素统称为噪声。而噪声无处不在,很难避免。

2.编码

(1)编码就是为了让信息以更好的方式传输。

*人类已知最难的通信场景就是情侣吵架,要如何将你想说的话传达给对方呢?一种办法是大喊大叫,但也可能会被误解。所以香农的意思是,重点是你说话的方式。所以我们应该多说几遍,但要用不同的表达方式。我们应该将其好好编码,最后我们应该加上一个纠错码,在这种情况下可能会是,“但我爱你”。

(2)尽管噪声会干扰通信,但我们还是可以通过正确的编码,让信息速率在小于信道容量C的前提下,毫无差错地传送信息。不能超过C,否则就会出现更多的不确定性。这就是香农极限

3.极化码

(1)

Day4学习记录_第1张图片

两种信道:要么传输成功;要么擦除,完全接收不到。

最多只能传输1-p(C)的信息

Arikan教授的想法:把信道容量看成一种资源,舍弃部分信道,将资源向其他信道倾斜。

当信道足够多时,信道将会被分为完全无噪声的好信道和完全噪声的差信道,比例为P。整个通信模型的信道容量,刚好就是香农极限,这个过程就是极化码所谓的极化。

(2)极化码之前——Turbo码和LDPC(低密度奇偶校验码)

LDPC和极化码共同承担5G时代通信行业的编码标准。

(3)今天华为拥有超过2/3的极化码专利族,是其他竞争对手的十倍。

二、c语言知识

1.二进制和十进制转换

(1)十到二:除二反序取余法^

(2)二到十:权值法

八进制、十六进制和十进制的转换同理。

2.二、八、十六转换(8421法则

Day4学习记录_第2张图片

二进制也能相加减:

1+4+8=13--------1+100+1000=1101

二到八(从后往前,每三个为一组,位数不够用0补)

110010----110|010----62

二到十六(每四个为一组)

八和十六不好直接转,先转成二。

3.十进制的小数转成二进制:

小数部分*2,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转换后的结果。

Day4学习记录_第3张图片

(0.432只有3位,故只需3位。0.432的二进制数为0.011)

4.当前计算机系统使用的都是二进制系统,数据在计算机中主要是以补码的形式存储的。

(Windows中一个汉字占2个字节; Linux  3个)

Day4学习记录_第4张图片

Day4学习记录_第5张图片

 

5.c语言如何表示相应进制数

Day4学习记录_第6张图片

c语言不能直接书写二进制!!!

*在c语言中的进制表现形式有三种:十进制、八进制、十六进制

6.原码:(原始的二进制码)

(1)最高位做为符号位,0表示正,1表示负。

(2)其他数值部分就是数值本身绝对值的二进制数。

(3)负数的原码是在其绝对值的基础上,最高位变为1。

Day4学习记录_第7张图片

 

7.反码:

(1)正数:原码=反码

(2)负数:符号位不变,其他部分取反。

Day4学习记录_第8张图片

8.补码:

(1)正数:原码、反码、补码相同

(2)负数:反码+1

(3)补码符号位不动,其他位求反,最后整个数+1=原码。

Day4学习记录_第9张图片

Day4学习记录_第10张图片

 

(4)在计算机系统中,用补码来存储数值的原因:

*统一了0的编码(0在计算机中存储的方式是0?-0?0!)

int a=0;  0000 0000

*将符号位和其它位统一处理

*将减法运算转变为加法运算

*两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

Day4学习记录_第11张图片

Day4学习记录_第12张图片

Day4学习记录_第13张图片

Day4学习记录_第14张图片

9.有符号和无符号取值范围

**8bit数据最大存储值为?原码(补码):0111 1111  2^7-1=127

**最小值?原码:1111 1111  -127 反码:1000 0000

补码:1000 0001       补码1000 0000   -0=-128

数据存储时,将-0对应的区间值设为最小值-2^7

(1)有符号字符型(8bit数据)取值范围:-2^7~2^7-1即-128~127

(2)signed int 32bit  -2^31~2^31-1即-2147483648~2147483647

(3)long long 64bit  -2^63~2^63-1

(4)数据存储在计算机中不存在符号位

unsigned char

1111 1111  2^8-1  

0000 0000  0

unsigned char  0~255

unsigned int

1111 1111 1111 1111 1111 1111 1111 1111  2^32-1  4294967295

0000 0000 0000 0000 0000 0000 0000 0000  0

有符号和无符号整型取值范围:

Day4学习记录_第15张图片

10.数据溢出

Day4学习记录_第16张图片

Day4学习记录_第17张图片

当超过一个数据类型能够存放的最大的范围时,数值会溢出。

有符号位和最高位溢出的区别:

符号位溢出会导致数的正负发生改变,

但最高位的溢出会导致最高位丢失。

11.类型限定符

Day4学习记录_第18张图片

12.格式化输入输出

Day4学习记录_第19张图片

(1)printf输出一个字符串,putchar输出一个char。

putchar()可以是变量、字符、数字(0~127)

(2)占位符总结

Day4学习记录_第20张图片

         %%        %                                  输出一个百分号

(3)printf附加格式

Day4学习记录_第21张图片

Day4学习记录_第22张图片

(4)scanf与getchar

Day4学习记录_第23张图片

Day4学习记录_第24张图片

三、问题

Day4学习记录_第25张图片

为啥这个代码会报错呢,是vs版本的问题吗?老师的可以运行呀

四、来源

bilibili【老奇】5G,华为,土耳其——我花了两个月,搞懂了5G背后的秘密

bilibili黑马程序员c语言基础教程

你可能感兴趣的:(学习,网络)