Perlで16進数→10進数→二進数の変換を行うために
packとunpackを使用するのですが
32ビット以上の数であるためにbigintを使用しています。
そのときに
10進→二進変換
二進→10進変換などはどのように行えば良いのでしょうか?
32bitまでならば
sub bin_dec {
return (unpack("N",(pack("B32", $_[0]))));
}
sub dec_bin {
return (unpack("B32", pack("N", $_[0])));
}
のように行えるのですが
Nは32bitのlong型のままですので
4294967295以上の数は4294967295になってしまいます。
どうすれば良いのでしょうか?
Bit/Vectorモジュールは使えないものとします。
No.3
- 回答日時:
二進→10進変換
$x = Math::BigInt->new('0b100000000000000000000000000000001');
でもいいですけど
No.1
- 回答日時:
perlを使用されている環境が不明ですのでなんともいえませんが、
1.貴方の環境が64ビット整数をサポートするマシン(Cコンパイラ)で、かつperlが64ビット整数をサポートしている場合は、packのオプションで
q/Q(quad=64ビット整数)が使用可能です。
これが、使用できるならこれを使用すればできると思います。
2.もし使用できないなら、自前で
16進数→10進数→二進数の関数を作らざるを得ないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) マクロについて教えてください。 1 2023/06/06 00:57
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- その他(Microsoft Office) 関数について 2 2022/08/15 13:44
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- その他(プログラミング・Web制作) Visual Studio Code 関数の使い方について 3 2023/05/31 13:15
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでPDFファイルをMicro...
-
括弧内のキーワードを抽出・変...
-
gccでiconvを使った文字コード...
-
VB6にも「ToString」ってあり...
-
Visual Studio プロパティペー...
-
ひらがなから全角カタカナへの...
-
テキストをhtml変換するには
-
文字コードの%E3%80%とは何です...
-
エクセルでの全角から半角への変換
-
CString から LPCTSTRの型に変換
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
正規表現 URL抽出「 [\\/\\b]{0...
-
VBA 文字に半角が含まれて...
-
住宅にカナを入力する際に丁目...
-
PowerShellの繰り返し処理の最...
-
[VBScript]バイト長の判定
-
「何とかで始まり、何とかで終...
-
全角チルダと波ダッシュに関す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでPDFファイルをMicro...
-
CString から LPCTSTRの型に変換
-
文字コードの%E3%80%とは何です...
-
SJIS->UTF8->SJISコード変換に...
-
Visual Studio プロパティペー...
-
テキストをhtml変換するには
-
VBScript文字列をSJISからUTF8...
-
文字化けしてしまって困っています
-
LINUX上でシリアル通信(C++)
-
シャープ(#)の受け渡し
-
【PHP】全角記号を半角記号...
-
エクセルでの漢字(全角ひらが...
-
URLが日本語なのになぜ表示...
-
CString型からdouble型への変換
-
ファイル名の右側を変更したい ...
-
SQLのデータで半角カナを全角に...
-
Excelで半角カナのみを全角に変...
-
VB6にも「ToString」ってあり...
-
改行を含んだ文字列を正規表現...
-
日付をシリアル値に変換
おすすめ情報