我有一個 32 位陣列,@data 想要為 [16] 到 [31] 寫入零 是否有更短的方法可以做到這一點?
splice(@data,16,16,(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0))
uj5u.com熱心網友回復:
您可以使用陣列切片而不是splice一次將串列分配給一系列索引:
@data[16..31] = (0) x 16;
uj5u.com熱心網友回復:
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
可以寫成
( 0 ) x 16
所以,
splice( @data, 16, 16, ( 0 ) x 16 );
也就是說,將陣列用于位是很奇怪的。我們通常會使用一個數字。
為了只保留最不重要的 16 位,我們將使用
$data &= 0xFFFF;
為了只保留 32 中最重要的 16 位,我們將使用
$data &= 0xFFFF0000;
或者
$data &= ~0xFFFF;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/504248.html
標籤:perl
