百家姓128进制的权重和编码

当使用百家姓表达一个128进制的数据时,一个128进制的数字(值在0~127之间)需要用两个字节来表达,在128个百家姓中每个姓氏有GBK编码和UNI编码两种。
各姓氏的权重和编码如下:
权重    姓氏    GBK编码    UNI编码

127    赵    0xD5D4    0x758D
126    钱    0xC7AE    0xB194
125    孙    0xCBEF    0x595B
124    李    0xC0EE    0x4E67
123    周    0xD6DC    0x6854
122    吴    0xCEE2    0x3454
121    郑    0xD6A3    0xD190
120    王    0xCDF5    0x8B73
119    冯    0xB7EB    0xAF51
118    陈    0xB3C2    0x4896
117    褚    0xF1D2    0x1A89
116    卫    0xCEC0    0x6B53
115    蒋    0xBDAF    0x8B84
114    沈    0xC9F2    0x886C
113    韩    0xBAAB    0xE997
112    杨    0xD1EE    0x6867
111    朱    0xD6EC    0x3167
110    秦    0xC7D8    0xE679
109    尤    0xD3C8    0x245C
108    许    0xD0ED    0xB88B
107    何    0xBACE    0x554F
106    吕    0xC2C0    0x1554
105    施    0xCAA9    0xBD65
104    张    0xD5C5    0x205F
103    孔    0xBFD7    0x545B
102    曹    0xB2DC    0xF966
101    严    0xD1CF    0x254E
100    华    0xBBAA    0x4E53
099    金    0xBDF0    0xD191
098    魏    0xCEBA    0x4F9B
097    陶    0xCCD5    0x7696
096    姜    0xBDAA    0xDC59
095    戚    0xC6DD    0x1A62
094    谢    0xD0BB    0x228C
093    邹    0xD7DE    0xB990
092    喻    0xD3F7    0xBB55
091    柏    0xB0D8    0xCF67
090    水    0xCBAE    0x346C
089    窦    0xF1BC    0xA67A
088    章    0xD5C2    0xE07A
087    云    0xD4C6    0x914E
086    苏    0xCBD5    0xCF82
085    潘    0xC5CB    0x586F
084    葛    0xB8F0    0x5B84
083    奚    0xDEC9    0x5A59
082    范    0xB7B6    0x0383
081    彭    0xC5ED    0x6D5F
080    郎    0xC0C9    0xCE90
079    鲁    0xC2B3    0x819C
078    韦    0xCEA4    0xE697
077    昌    0xB2FD    0x0C66
076    马    0xC2ED    0x6C9A
075    苗    0xC3E7    0xD782
074    凤    0xB7EF    0xE451
073    花    0xBBA8    0xB182
072    方    0xB7BD    0xB965
071    俞    0xD3E1    0xDE4F
070    任    0xC8CE    0xFB4E
069    袁    0xD4AC    0x8188
068    柳    0xC1F8    0xF367
067    酆    0xDBBA    0x4691
066    鲍    0xB1AB    0x8D9C
065    史    0xCAB7    0xF253
064    唐    0xCCC6    0x1055
063    费    0xB7D1    0x398D
062    廉    0xC1AE    0xC95E
061    岑    0xE1AF    0x915C
060    薛    0xD1A6    0x9B85
059    雷    0xC0D7    0xF796
058    贺    0xBAD8    0x3A8D
057    倪    0xC4DF    0x2A50
056    汤    0xCCC0    0x646C
055    滕    0xEBF8    0xD56E
054    殷    0xD2F3    0xB76B
053    罗    0xC2DE    0x577F
052    毕    0xB1CF    0xD56B
051    郝    0xBAC2    0xDD90
050    邬    0xDAF9    0xAC90
049    安    0xB0B2    0x895B
048    常    0xB3A3    0x385E
047    乐    0xC0D6    0x504E
046    于    0xD3DA    0x8E4E
045    时    0xCAB1    0xF665
044    傅    0xB8B5    0x8550
043    皮    0xC6A4    0xAE76
042    卞    0xB1E5    0x5E53
041    齐    0xC6EB    0x509F
040    康    0xBFB5    0xB75E
039    伍    0xCEE9    0x0D4F
038    余    0xD3E0    0x594F
037    元    0xD4AA    0x4351
036    卜    0xB2B7    0x5C53
035    顾    0xB9CB    0x7E98
034    孟    0xC3CF    0x5F5B
033    平    0xC6BD    0x735E
032    黄    0xBBC6    0xC49E
031    和    0xBACD    0x8C54
030    穆    0xC4C2    0x467A
029    萧    0xCFF4    0x2784
028    尹    0xD2FC    0x395C
027    姚    0xD2A6    0xDA59
026    邵    0xC9DB    0xB590
025    堪    0xBFB0    0x2A58
024    汪    0xCDF4    0x6A6C
023    祁    0xC6EE    0x4179
022    毛    0xC3AB    0xDB6B
021    禹    0xD3ED    0xB979
020    狄    0xB5D2    0xC472
019    米    0xC3D7    0x737C
018    贝    0xB1B4    0x1D8D
017    明    0xC3F7    0x0E66
016    臧    0xEAB0    0xE781
015    计    0xBCC6    0xA18B
014    伏    0xB7FC    0x0F4F
013    成    0xB3C9    0x1062
012    戴    0xB4F7    0x3462
011    谈    0xCCB8    0x088C
010    宋    0xCBCE    0x8B5B
009    茅    0xC3A9    0x0583
008    庞    0xC5D3    0x9E5E
007    熊    0xD0DC    0x8A71
006    纪    0xBCCD    0xAA7E
005    舒    0xCAE6    0x1282
004    屈    0xC7FC    0x485C
003    项    0xCFEE    0x7998
002    祝    0xD7A3    0x5D79
001    董    0xB6AD    0x6384
000    梁    0xC1BA    0x8168

建议采用GBK编码,其编码更集中在某个范围内,容易检查其合法性。

程序编码就是对数学逻辑的具体实现

为什么你的代码一坨坨?其实来自你有那么多为什么你要这样写代码!
为什么你的代码那么多for循环?因为没有合理的数据结构和算法逻辑。
为什么你的代码那么多ifelse?因为缺少设计模式对业务场景的运用。
为什么你的程序应用复杂对接困难?因为没有良好的系统架构拆分和规划。
为什么你的程序逻辑开发交付慢返工多?因为不具备某些业务场景的开发经验。
为什么你的程序展现都是看上去不说人话?因为没有产品思维都是程序员逻辑的体现。
最终,所有的这些不合理交织在一起,就是你能看到的一坨坨的代码!所以,要想把代码写好、写美,写到自己愿意反复欣赏,那么基本需要你有一定的:基础能力(数据结构、算法逻辑、设计模式)、应用能力(系统架构、开发经验)、拓展能力(产品思维),这三方面综合起来才能更好的开发程序。

数据结构:数组、链表、红黑树 算法逻辑:哈希、扰动函数、负载因子、拉链寻址、

其实我们所开发的业务程序,哪怕是CRUD也都是对数学逻辑的具体实现过程。只不过简单的业务有简单的数学逻辑、复杂的业务有复杂的数学逻辑。数学逻辑是对数据结构的使用,(例如:把大象装进冰箱分几步)合理的数据的结构有利于数据逻辑的实现和复杂程度。

在我们常用的API中,HashMap 就是一个非常好的例子,既有非常好的数据结构的使用,也有强大的数学逻辑的实现。为此也让 HashMap 成为开发过程中非常常用的API,当然也成为面试过程中最常问的技术点。