字符串知识点

· 二进制补码基础

补码用于在计算机内表示负数, 负数 2的补码表示法可以将加法运算规则, 扩展到整个整数集。

· 机器数:带符号的二进制码字 ,比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是0000 0011。如果是 -3 ,就是 1111 1101 。那么,这里的 00000011 和 1111 1101 就是机器数。 机器数包含了符号和数值部分。

·真值:带符号位的机器数对应的真正数值,比如 -3,+3

·在计算机内,有符号数有3种表示法:原码、反码和补码。

     [+1] = [ 00000001 ]原码 = [ 00000001 ]反码 = [ 00000001 ]补码 ; 

     [-1]  = [ 10000001 ]原码 = [ 11111110 ]反码 = [11111111]补码

    原码第一位是符号位, 所以若是8位二进制数,其取值范围就是: [1111 1111 , 0111 1111]  即[-127 , 127] 

    反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 

    补码:正数原码一致,负数反码加1,如-8= 0-8 ((11111111-00001000)反码  +00000001)加1 =11111000 

C语言中变量以补码形式存放在内存中,正数的补码与原码相同,负数求补码方式为(符号位不变,其余各位取反,最后末尾加1);

32位机器:int 32位,short 16位。

x = 127,正数,原码:0111 1111,补码:0111 1111,扩展到32位高位补0,结果为0000007FH; 

Y = -9,  负数,原码:1000 1001,补码:1111 0111,扩展到16位高位补1,结果为FFF7H;

z = x + y = 118,原码:0111 0110,补码:0111 0110,扩展到32位高位补0,结果为00000076H。  注意:扩展时,符号位不变。

· 哈夫曼编码

在处理字符串序列时,如果对每个字符串采用相同的二进制位表示,则称这种编码方式为定长编码。若允许对不同的字符采用不等长的二进制位进行表示,那么这种方式称为可变长编码。可变长编码其特点是对使用频率高的字符采用短编码,而对使用频率低的字符则采用长编码的方式。这样我们就可减少数据的存储空间,从而起到压缩数据的效果。而通过哈夫曼树形成的哈夫曼编码是一种有效的数据压缩编码。 

· KMP算法及next数组求解

对于正常的字符串模式匹配,主串长度为m,子串为n,时间复杂度会到达O(m*n),空间复杂度为O(1),而如果用KMP算法,复杂度将会减少线型时间O(m+n),由于涉及到next数组的存储,空间复杂度O(n)。

· next数组求解:以从1开始,next[1]=0,next[2]=1,next[n] :将前面n-1个字符,计算从首尾开始组成最大的相同子串的长度,如果找到,那么next值是该长度加1,否则next值是1。

· kmp及next数组实现:代码

· 错题总结:

1、strlen:字符串长度,不包含‘结束符\0’        转义字符:\\=\ ; \123=S; \t=Tab键; \0表示后面字符为八进制,‘\09’为非法字符。

2、 广义表L=(A,B,C),表头是A,表尾是(B,C) 。tail()表示取字符串的尾部,head()表示取字符串的头。

3、 printf("格式控制字符串", 输出列表);printf("%s", string);  putchar(字符数据)char  a_c=‘h’;putchar(a_c);puts(字符串); puts(“hello girl”)  ;

4、 结构体内存原则: 对齐原则:每一成员需对齐为后一成员类型的倍数// 补齐原则:最终大小补齐为成员类型最大值的倍数

5、 %s格式输出直到'\0'的字符串,字符串尾数字0为‘\0’结束符,%c对应的是单个字符,%d是十进制整数型输出。

6、65536 相当于 unsigned short  的0值。如 65537:1 00000000 00000001,(2字节)short i = 65537时,发生了溢出取16bit,为1。

7、单线程运行效率: String<< StringBuffer( 线程安全 )< StringBuilder( 非线程安全 ) 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容