如何在 Perl 中進行二進位制與十進位制之間的轉換?


在處理二進位制資料並在一些簡單的應用程式中使用它們時,二進位制到十進位制和十進位制到二進位制之間的轉換是必要的。在 Perl 中,我們可以透過多種方式進行十進位制到二進位制以及二進位制到十進位制的轉換。

在本教程中,我們將探討不同的示例,首先將十進位制值轉換為二進位制值,然後將二進位制值轉換為十進位制值。

Perl 中的十進位制到二進位制

讓我們首先看一個例子,其中我們得到兩個十進位制值,並且我們希望將它們轉換為它們的二進位制表示。

例如,假設我們有兩個數字,“x = 154”和“y = 10”,我們希望有一個程式可以獲取這兩個數字並將它們轉換為它們的二進位制表示。請考慮下面所示的程式碼,它執行相同的操作。

示例

在此程式碼中,我們使用 unpack 函式,然後刪除尾隨零並返回字串。

sub decimal2binary {
   my $str = unpack("B32", pack("N", shift));
   $str =~ s/^0+(?=\d)//;
   return $str;
}
@res = decimal2binary(154);
print "Binary representation of 154 is: ", @res;
print "\n";
@res = decimal2binary(10);
print "Binary representation of 10 is: ", @res;

輸出

如果您在 Perl 編譯器上執行上述程式碼,您將在終端中獲得以下輸出:

Binary representation of 154 is: 10011010
Binary representation of 10 is: 1010

Perl 中的二進位制到十進位制

現在讓我們考慮另一個示例,我們將把二進位制數轉換為十進位制數。請考慮下面所示的程式碼,它執行相同的操作。在這裡,我們將二進位制數“154”和“10”轉換為它們的十進位制表示。

示例

sub binary2decimal {
   return unpack("N", pack("B32", substr("0" x 32 . shift, -32)));
}
@res = binary2decimal('10011010');
print "Decimal representation of 10011010 is: ", @res;
print "\n";
@res = binary2decimal('1010');
print "Decimal representation of 1010 is: ", @res;

輸出

如果您在 Perl 編譯器上執行此程式碼,您將在終端中獲得以下輸出:

Decimal representation of 10011010 is: 154
Decimal representation of 1010 is: 10

結論

在本教程中,我們使用兩個示例演示瞭如何在 Perl 中將二進位制數轉換為其十進位制對應值,反之亦然。

更新於: 2023年4月4日

706 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告