(1)信息的本质:消除世界的不确定性
(2)如何度量信息:利用概率的不确定性
不确定度——信息熵
*类比名人游戏:信息熵即一个问题的最少提问次数。
(公式为对数的原因:log(x*y)=logx+logy, log相加就是概率相乘 底换为2 万物皆为二进制 万物皆为bit)
(3)capacity-achieving:容量可达
channel capacity(信道容量):单位时间能传达的信息量。
类似于对方能还原你发送的信息的上限,是通信在理论上存在的上限。
(4)信道容量常用一个词来定义——最大互信息 o.疑义度
(5)各种可能导致信息损失的因素统称为噪声。而噪声无处不在,很难避免。
(1)编码就是为了让信息以更好的方式传输。
*人类已知最难的通信场景就是情侣吵架,要如何将你想说的话传达给对方呢?一种办法是大喊大叫,但也可能会被误解。所以香农的意思是,重点是你说话的方式。所以我们应该多说几遍,但要用不同的表达方式。我们应该将其好好编码,最后我们应该加上一个纠错码,在这种情况下可能会是,“但我爱你”。
(2)尽管噪声会干扰通信,但我们还是可以通过正确的编码,让信息速率在小于信道容量C的前提下,毫无差错地传送信息。不能超过C,否则就会出现更多的不确定性。这就是香农极限。
(1)
两种信道:要么传输成功;要么擦除,完全接收不到。
最多只能传输1-p(C)的信息
Arikan教授的想法:把信道容量看成一种资源,舍弃部分信道,将资源向其他信道倾斜。
当信道足够多时,信道将会被分为完全无噪声的好信道和完全噪声的差信道,比例为P。整个通信模型的信道容量,刚好就是香农极限,这个过程就是极化码所谓的极化。
(2)极化码之前——Turbo码和LDPC(低密度奇偶校验码)
LDPC和极化码共同承担5G时代通信行业的编码标准。
(3)今天华为拥有超过2/3的极化码专利族,是其他竞争对手的十倍。
(1)十到二:除二反序取余法^
(2)二到十:权值法
八进制、十六进制和十进制的转换同理。
二进制也能相加减:
1+4+8=13--------1+100+1000=1101
二到八(从后往前,每三个为一组,位数不够用0补)
110010----110|010----62
二到十六(每四个为一组)
八和十六不好直接转,先转成二。
小数部分*2,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转换后的结果。
(0.432只有3位,故只需3位。0.432的二进制数为0.011)
(Windows中一个汉字占2个字节; Linux 3个)
c语言不能直接书写二进制!!!
*在c语言中的进制表现形式有三种:十进制、八进制、十六进制
(1)最高位做为符号位,0表示正,1表示负。
(2)其他数值部分就是数值本身绝对值的二进制数。
(3)负数的原码是在其绝对值的基础上,最高位变为1。
(1)正数:原码=反码
(2)负数:符号位不变,其他部分取反。
(1)正数:原码、反码、补码相同
(2)负数:反码+1
(3)补码符号位不动,其他位求反,最后整个数+1=原码。
(4)在计算机系统中,用补码来存储数值的原因:
*统一了0的编码(0在计算机中存储的方式是0?-0?0!)
int a=0; 0000 0000
*将符号位和其它位统一处理
*将减法运算转变为加法运算
*两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
**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
有符号和无符号整型取值范围:
当超过一个数据类型能够存放的最大的范围时,数值会溢出。
有符号位和最高位溢出的区别:
符号位溢出会导致数的正负发生改变,
但最高位的溢出会导致最高位丢失。
(1)printf输出一个字符串,putchar输出一个char。
putchar()可以是变量、字符、数字(0~127)
(2)占位符总结
%% % 输出一个百分号
(3)printf附加格式
(4)scanf与getchar
为啥这个代码会报错呢,是vs版本的问题吗?老师的可以运行呀
bilibili【老奇】5G,华为,土耳其——我花了两个月,搞懂了5G背后的秘密
bilibili黑马程序员c语言基础教程