⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 40__auxiliary.t

📁 SinFP是一种新的识别对方计算机操作系统类型的工具
💻 T
字号:
#!perl -wuse strict;no strict "vars";use Bit::Vector::String;my @l = (31,32,33,127,128,129,1023,1024,1025);my($b,$i,$n,$r,$s,$t,$u,$v,$w,$x);print "1..", @l * 81, "\n";$n = 1;# -------------------------------------------------------foreach $b (@l){    $v = Bit::Vector->new($b);    $w = Bit::Vector->new($b);    for ( $i = 0; $i < 3; $i++ )    {        if    ($i == 0) { $v->Primes(); }        elsif ($i == 1) { $v->Fill(); }        else        {            $v->Empty();            for ( $x = 0; $x < $b; $x += 12 ) { $v->Bit_On($x); }            if ($v->to_Oct() =~ /^[01]+$/)            {print "ok $n\n";} else {print "not ok $n\n";}            $n++;            if ($v->to_Hex() =~ /^[01]+$/)            {print "ok $n\n";} else {print "not ok $n\n";}            $n++;        }# =======================================================        $x = '$w->from_Oct( $s = $v->to_Oct() );';        $t = 2;        $r = 'OCT';        $w->from_Oct( $s = $v->to_Oct() );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $x = '$t = $w->String_Import( $s = $v->String_Export( $r ) );';        $t = $w->String_Import( $s = $v->String_Export( $r = 'bin' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $t = $w->String_Import( $s = $v->String_Export( $r = 'oct' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $t = $w->String_Import( $s = $v->String_Export( $r = 'hex' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $t = $w->String_Import( $s = $v->String_Export( $r = 'dec' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $t = $w->String_Import( $s = $v->String_Export( $r = 'enum' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $t = $w->String_Import( $s = $v->String_Export( $r = 'pack' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;# =======================================================        $x = '$t = $w->String_Import( $s = $v->to_Type() );';        $r = 'bin';        $t = $w->String_Import( $s = $v->to_Bin() );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        if ($i < 2)        {            $r = 'oct';            $t = $w->String_Import( $s = $v->to_Oct() );            if ($v->equal($w))            {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}            $n++;            $r = 'hex';            $t = $w->String_Import( $s = $v->to_Hex() );            if ($v->equal($w))            {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}            $n++;        }        $r = 'dec';        $t = $w->String_Import( $s = $v->to_Dec() );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $r = 'enum';        $t = $w->String_Import( $s = $v->to_Enum() );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $r = 'pack';        $t = $w->String_Import( $s = ':' . $v->Size(). ':' . $v->Block_Read() );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;# =======================================================        $x = '$w = Bit::Vector->new_Oct( $b, $s = $v->to_Oct() );';        $t = 2;        $r = 'OCT';        $w = Bit::Vector->new_Oct( $b, $s = $v->to_Oct() );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $x = '($w,$t) = Bit::Vector->new_String( $b, $s = $v->String_Export( $r ) );';        ($w,$t) = Bit::Vector->new_String( $b, $s = $v->String_Export( $r = 'bin' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( $b, $s = $v->String_Export( $r = 'oct' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( $b, $s = $v->String_Export( $r = 'hex' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( $b, $s = $v->String_Export( $r = 'dec' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( $b, $s = $v->String_Export( $r = 'enum' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( $b, $s = $v->String_Export( $r = 'pack' ) );        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;# =======================================================        $x = '$w = Bit::Vector->new_Oct( undef, $s = $v->to_Oct() );';        $t = 2;        $r = 'OCT';        $w = Bit::Vector->new_Oct( undef, $s = $v->to_Oct() );        $w->Resize($b) if ($w->Size() != $b);        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        $x = '($w,$t) = Bit::Vector->new_String( undef, $s = $v->String_Export( $r ) );';        ($w,$t) = Bit::Vector->new_String( undef, $s = $v->String_Export( $r = 'bin' ) );        $w->Resize($b) if ($w->Size() != $b);        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( undef, $s = $v->String_Export( $r = 'oct' ) );        $w->Resize($b) if ($w->Size() != $b);        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( undef, $s = $v->String_Export( $r = 'hex' ) );        $w->Resize($b) if ($w->Size() != $b);        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( undef, $s = $v->String_Export( $r = 'dec' ) );        if ($w->Size() != $b)        {            if ($v->msb and $w->Size() < $b) # needs sign extension when increasing size            {                $u = $w;                $w = Bit::Vector->new($b);                $w->Copy($u);            }            else { $w->Resize($b); }        }        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( undef, $s = $v->String_Export( $r = 'enum' ) );        $w->Resize($b) if ($w->Size() != $b);        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;        ($w,$t) = Bit::Vector->new_String( undef, $s = $v->String_Export( $r = 'pack' ) );        $w->Resize($b) if ($w->Size() != $b);        if ($v->equal($w))        {print "ok $n\n";} else {print "not ok $n\n";trace($b,$r,$s,$t,$v,$w,$x);}        $n++;# =======================================================    } # for ( $i = 0; $i < 3; $i++ )} # foreach $b (@l)# -------------------------------------------------------sub type{    return 'bin'  if ($_[0] == 1);    return 'oct'  if ($_[0] == 2);    return 'dec'  if ($_[0] == 3);    return 'hex'  if ($_[0] == 4);    return 'enum' if ($_[0] == 5);    return 'pack' if ($_[0] == 6);    return undef;}sub trace{    my($b,$r,$s,$t,$v,$w,$x) = @_;    warn( "$x\n" );    warn( "$r, $b bits\n" );    warn( type($t) . ": <$s>\n" );    warn( "v = <" . $v->to_Hex() . ">\n" );    warn( "w = <" . $w->to_Hex() . ">\n" );}__END__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -