1>Red = 2.
2
2>Green = 61.
61
3>Blue = 20.
20
4>Men =<<Red:5,Green:6,Blue:5>>.
<<23,180>>
上面是书里的例题,一开始没看懂是什么意思,后来向别人请教学习后才理解了为什么最后shell输出的结果是<<23,180>>了,解题过程是这样的:
1.Men里的每种颜色后的数字表示该颜色所赋的值截取多少位。
2.在上面已经定义了每个颜色的值,只要把每个颜色对应的值转为二进制,并截取men里对应的长度既可,不足的用0来补齐。
3.转换后的结果为:
Red -> 00010
Green -> 111101
Blue -> 10100
4.得到所有的二进制后将它们合并起来,我们封装的是16bit的,所以每八位为一个数来表示!
0001011110110100 -> <<00010111 ,10110100>> -> <<23,180>>
这就是解析过程,原来如此简单!!!