免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 14840 | 回复: 3
打印 上一主题 下一主题

vec 是什么意思? [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-17 05:08 |只看该作者 |倒序浏览
vec 是什么意思?看书愣没看懂, 请弟兄们出手拉俺一把,最好举个例子

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-02-18 22:34 |只看该作者

vec 是什么意思?

http://www.perldoc.com/perl5.6/pod/func/vec.html

注意看他的範例...用二進制去想這個例子..你就會看懂了...
vec($expression,$offset,$bits) = XXX;
借用他的例子...
## $foo為空string
   my $foo = '';
## 從offset 0,以32bits為一個unit(或稱Vector),
## 將0x5065726C填入..$foo
    vec($foo,  0, 32) = 0x5065726C;        # 'Perl'
# $foo eq "erl" eq "\x50\x65\x72\x6C", -->;32 bits(8X32)

##將$foo的offset 0 前8個bits,打印出來...得到\0x50=ord('P');
   print vec($foo, 0, ;    # prints 80 == 0x50 == ord('P')

##以16個bits為一個vec...在offset 2個vec的地方將0x5065填入
## $foo,所以會得到'PerlPe'...因為Pe兩個字等於16的bits..
## 'rl' 16個bits..所以在offset 2個vec的地放加上Pe..得到下面的結果..
## 其他以此類推...非常簡單..
    vec($foo,  2, 16) = 0x5065;                # 'PerlPe'
    vec($foo,  3, 16) = 0x726C;                # 'PerlPerl'
    vec($foo,  8,   = 0x50;                # 'PerlPerlP'
    vec($foo,  9,   = 0x65;                # 'PerlPerlPe'
    vec($foo, 20,  4) = 2;                # 'PerlPerlPe'   . "\x02"
    vec($foo, 21,  4) = 7;                # 'PerlPerlPer'
                                        # 'r' is "\x72"
    vec($foo, 45,  2) = 3;                # 'PerlPerlPer'  . "\x0c"
    vec($foo, 93,  1) = 1;                # 'PerlPerlPer'  . "\x2c"
    vec($foo, 94,  1) = 1;                # 'PerlPerlPerl'
                                        # 'l' is "\x6c"  

另外你會看到最下面他有用unpack..應該是要將16進位碼..轉成英文字..
與列印整齊用的...
其他細節請看perl相關書籍...

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-02-19 02:39 |只看该作者

vec 是什么意思?

谢谢,SAVE 下来

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-02-19 05:13 |只看该作者

vec 是什么意思?

apile真的感谢,俺老虾终于开了窍也!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP