- 締切済み
java→Cについて
参考書でjavaで書いてある内容をC言語に直したいと思っているのですが、 javaでのBigInteger、また、それにともなうBiginteger.toByteArray、Biginteger.addをどのように表記すればいいか悩んでいます。 なにかいい方法はないでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- KSOH
- ベストアンサー率93% (29/31)
その参考書にJavaのBigIntegerクラスのadd,toByteArrayを使った何かのプログラムがあるということですね?C#やC++ではなくてCなのだとしたら構造体とその構造体を扱う関数群で実装することになります。 typedef struct { int byteLength; /* 桁のバイト数 */ int signum; /* 符号 */ /* 他に必要なだけメンバーを定義 */ unsigned char* bytes; /* 桁を表す配列アドレス unsigned short*, unsigned int* かも知れない*/ } BigInteger; このように構造体を定義しておき、この構造体に対してadd,toByteArrayに相当する機能を自前で実装することになります。ある程度のアルゴリズム実装経験があればadd/toByteArrayを実装することは(面倒くさいけど)そう難しくないです。ただし、プログラミング初心者の場合はちょっと敷居が高いかもしれません。 適当な無限精度整数の計算ライブラリーをみつけることができればそれを利用するのがより簡単かも知れませんが、初心者の場合はそういったライブラリーをDLしてコンパイルし自分の目的に応じて利用するということ自体も難しいかも知れません。かえって自分で実装したほうが早かったということもしばしば・・・