亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: PERL的字符串操作 [打印本頁]

作者: 逝去的華麗    時(shí)間: 2009-03-20 16:12
標(biāo)題: PERL的字符串操作
請(qǐng)教各位:
如果我想在一串2進(jìn)制數(shù)中,消除一部分,比如:原始字符串:0100111000,要從中消去:0100110000,留下的為:0000001000,意思就是想消去上面字符串中的某些1,我本來想用 ^ ,結(jié)果居然不行。。。
有沒有啥子好辦法?

但是我如果用&符號(hào),卻可以得到 兩串2進(jìn)制數(shù)據(jù)之間的公共部分。如:$s1 = "0100011110" 和 $s2 = "0011001100"
假設(shè)我這樣:$test = $s1 & $s2; 得到的$test = "0000001100",是我想要的結(jié)果。。但
如果我用:$tmp = $s1 ^ $test ; 得到的$tmp是亂碼,用VI看是亂碼,,類似這樣的字符串:“^A^@^@”,如果將^A換為1,^@換為0,那就是我想要的結(jié)果。?墒菫槭裁催@里用^就不能顯示出來呢》???
作者: MMMIX    時(shí)間: 2009-03-20 16:33
標(biāo)題: 回復(fù) #1 逝去的華麗 的帖子
看下 perlop 中對(duì) Bitwise String Operator 的介紹,尤其是那些例子。
作者: MMMIX    時(shí)間: 2009-03-20 16:36
原帖由 逝去的華麗 于 2009-3-20 16:12 發(fā)表
但是我如果用&符號(hào),卻可以得到 兩串2進(jìn)制數(shù)據(jù)之間的公共部分。如:$s1 = "0100011110" 和 $s2 = "0011001100"

這個(gè)可以是因?yàn)閯偤脺惽闪恕?0' = 0x30, '1' = 0x31, '0' & '1' = 0x30 & 0x31 = 0x30 = '0'. 至于 '0' ^ '1' 是什么你可以自己算算
作者: 逝去的華麗    時(shí)間: 2009-03-20 20:17
哦,樓上的,我明白了,你的意思是, perl中拿的是ASCII碼來做運(yùn)算?所以,湊巧 &操作可以得到想要的結(jié)果,^卻不那么巧,呵呵。。
謝謝哈~~
作者: MMMIX    時(shí)間: 2009-03-20 20:58
原帖由 逝去的華麗 于 2009-3-20 20:17 發(fā)表
哦,樓上的,我明白了,你的意思是, perl中拿的是ASCII碼來做運(yùn)算?

嗯。
作者: 逝去的華麗    時(shí)間: 2009-03-22 16:00
請(qǐng)問樓上一個(gè)問題,perl什么時(shí)候會(huì)把 $m = "10101010000" 當(dāng)做數(shù)字,什么時(shí)候把它當(dāng)做是字符串呢
作者: MMMIX    時(shí)間: 2009-03-22 21:05
原帖由 逝去的華麗 于 2009-3-22 16:00 發(fā)表
請(qǐng)問樓上一個(gè)問題,perl什么時(shí)候會(huì)把 $m = "10101010000" 當(dāng)做數(shù)字,什么時(shí)候把它當(dāng)做是字符串呢

需要數(shù)字的時(shí)候就把它當(dāng)作數(shù)字,需要字符串的時(shí)候就把它當(dāng)作字符串。
作者: 逝去的華麗    時(shí)間: 2009-03-23 10:25
哦,那為什么在我這里,PERL沒有把“100010101010”當(dāng)成是數(shù)字呢? 而用ASCII來表示其中的每一個(gè)字符。?雌饋鞵ERL把它當(dāng)成了字符串。。這個(gè)是為什么呢?
作者: MMMIX    時(shí)間: 2009-03-23 11:32
原帖由 逝去的華麗 于 2009-3-23 10:25 發(fā)表
哦,那為什么在我這里,PERL沒有把“100010101010”當(dāng)成是數(shù)字呢? 而用ASCII來表示其中的每一個(gè)字符。?雌饋鞵ERL把它當(dāng)成了字符串。。這個(gè)是為什么呢?

你定義的就是個(gè) string,而且 Perl 的 &, ^ 等的 operand 也可以是 string。那么,Perl 為什么要把它當(dāng)作數(shù)字?
作者: 逝去的華麗    時(shí)間: 2009-03-23 13:09
我定義的變量其實(shí)是從一個(gè)文本里面讀過來的。那個(gè)文本是一個(gè)2進(jìn)制數(shù)字的矩陣,形如:

10101011000
10010000000
00011010101
       .....

我將其中的每一行給一個(gè)變量。那么這個(gè)變量里面的內(nèi)容是string?而不是數(shù)字?
作者: MMMIX    時(shí)間: 2009-03-23 14:27
原帖由 逝去的華麗 于 2009-3-23 13:09 發(fā)表
我定義的變量其實(shí)是從一個(gè)文本里面讀過來的。那個(gè)文本是一個(gè)2進(jìn)制數(shù)字的矩陣,形如:

10101011000
10010000000
00011010101
       .....

我將其中的每一行給一個(gè)變量。那么這個(gè)變量里面的內(nèi)容是string?而不是數(shù)字?

這取決于你是怎么讀的。按行讀取那肯定是 string 了。
作者: 逝去的華麗    時(shí)間: 2009-03-23 15:58
如果我想要它讀進(jìn)來的每一行,比如“0101010000”,PERL當(dāng)作是數(shù)字,怎么讀呢?
謝謝。。。
作者: hbl.ncut    時(shí)間: 2009-03-23 16:26
讀完了 做轉(zhuǎn)換不行么
作者: 逝去的華麗    時(shí)間: 2009-03-23 16:39
恩,我想知道有沒有方法直接讀出來就可以被PERL當(dāng)作是數(shù)字的方法。。呵呵
作者: MMMIX    時(shí)間: 2009-03-23 16:52
原帖由 逝去的華麗 于 2009-3-23 16:39 發(fā)表
恩,我想知道有沒有方法直接讀出來就可以被PERL當(dāng)作是數(shù)字的方法。。呵呵

沒有什么方法。先轉(zhuǎn)換下,這個(gè)也不復(fù)雜?聪 oct,這個(gè)應(yīng)該是你想要的。
作者: 逝去的華麗    時(shí)間: 2009-03-23 19:54
樓上的很熱心的回復(fù)我的帖子,非常感謝哈~~呵呵,關(guān)于官方網(wǎng)站上的PERL的說明文檔,,樓上的有沒有PDF版的?
如果有的話,可以給我發(fā)一個(gè)么?在公司上不了網(wǎng),看不到幫助文檔。。。
ccj507@163.com,我的 mail
作者: MMMIX    時(shí)間: 2009-03-23 21:56
原帖由 逝去的華麗 于 2009-3-23 19:54 發(fā)表
樓上的很熱心的回復(fù)我的帖子,非常感謝哈~~呵呵,關(guān)于官方網(wǎng)站上的PERL的說明文檔,,樓上的有沒有PDF版的?
如果有的話,可以給我發(fā)一個(gè)么?在公司上不了網(wǎng),看不到幫助文檔。。。

直接用 perldoc 看么,上網(wǎng)干嘛?




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2