Next: Integer Random Numbers, Previous: Integer Logic and Bit Fiddling, Up: Integer Functions [Index]
ここではstdioストリームに対してmpz
数の入出力を行う関数群を解説します。
stream引数にNULLが渡されると,入力はstdin
から,出力は stdout
に行います。
この入出力関数を使うときには,gmp.hより前にstdio.hをインクルードしておいて下さい。gmp.hでこの入出力関数のプロトタイプ宣言が使えるようになります。
Formatted Output と Formatted Inputも併せて参照して下さい。
opをstdioストリームstreamに,基数baseの文字列として出力します。基数は2以上62以下,もしくは,-36以上-2以下に設定できます。
baseが2以上36以下の時は,数字,その次に,小文字が使われます。-36以上-2以下の時は,数字,次に,大文字が使われます。37以上62以下の時には,数字,次に大文字,最後に小文字が使われます。
返り値は出力したバイト数です。エラーが起こった時には0が返ります。
ホワイトスペースを先頭に含む基数baseの文字列をstdioストリームstreamから読み取り,ropに格納します。
baseは2以上62以下に設定できます。baseが0の場合は,先頭文字で基数を判断します。0x
や0X
は16進数,0b
や0B
は2進数,0
は8進数,特に指定がないか,これ以外の指定があれば10進数と判断します。
36以下の基数の場合,大文字小文字の区別は行わず,全て同じ値とみなします。37以上62以下の基数の場合は,大文字は10~35,小文字は36~61と見なします。
返り値は読み込んだバイト数で,エラーが発生した時には0が返ります。
2進形式の値として,stdioストリームstreamにopを出力します。整数はどの環境でも利用可能な形式で出力され,4バイトのサイズ情報にリムの列が続きます。サイズやリムは有効桁数の小さい順に(即ち,ビッグエンディアンで)出力されます。
出力結果はmpz_inp_raw
関数で読み取ることができます。
返り値は書き出したバイト数で,エラーが発生した時にはゼロが返ります。
この出力結果は,GMP 1では32bit環境と64bit環境の互換性の問題があり,mpz_inp_raw
関数で読み取ることができなくなりました。
mpz_out_raw
関数で書き込んだフォーマットに従ってstdioストリームstreamからの入力を行い,その結果をropに格納します。返り値は読み込んだバイト数で,エラーが発生した時には0が返ります。
この関数はmpz_out_raw
関数の出力を読み取ることができます。GMP 1では,32bit環境と64bit環境の食い違いを正すための変更が必要になります。