- ベストアンサー
変数型について
1kバイト程度の変数型が必要なのですが、c言語でそのような変数型を作ることは可能でしょうか? 可能ならその方法を、不可能ならその他の言語では可能であるかを教えてください。 お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
要は、非常に大きな整数に関する四則演算を行いたいと言うことでしょうか。もし、そうでしたら以下の方法があります。 1案。既存の多倍長整数演算のライブラリを使用する。 「多倍長」で検索をすると該当のものが見つかると思います。 2案。多倍長整数演算のライブラリを自前で作成する。(質問者様はこれをやろうとしていたと推測します) 3案。rubyを使う。rubyの整数型変数は特に意識しなくても、無限桁の整数を扱うことが可能です。(もちろん、メモリの上限までですが) 私は、3案を推奨します。(ruby自体の文法は、四則演算程度だけなら一日で覚えら得ます。)
その他の回答 (4)
- tatsu99
- ベストアンサー率52% (391/751)
>rubyの文法を学ぼうと思うのですが参考にするとよい、本やサイトをご存知でしたら教えてください。 まずはここですね。 http://www.ruby-lang.org/ja/ このサイトのチュートリアルに簡単な入門編があります。 またここから、rubyがダウンロード可能です。 本については、入門書としては Ruby プログラミング入門(原真一郎著)オーム社 たのしいRuby 第2版 Rubyではじめる気軽なプログラミング (高橋 征義 (著), 後藤 裕蔵 (著) )ソフトバンククリエイティブ 等があります。 本は好みが分かれるので、実際に自分で読んでみて納得出来るものを選んで下さい。
お礼
回答ありがとうございます。 おかげで問題が解決できました。 どうもありがとうございました。
- Tacosan
- ベストアンサー率23% (3656/15482)
代入とか四則演算のあたりから, 全部ごりごりと関数を書いてください. といいつつ gmp とボソッとつぶやいてみる.
お礼
回答ありがとうございます。 gmpについて解説してあるサイトをご存知でしたら教えてください。
- zwi
- ベストアンサー率56% (730/1282)
>int a; >a=100; >と同じように扱えますか。 代わりに答えますが、そんな扱いはできません。 そもそも、どんなタイプのデータで1KBが必要なのでしょうか? 1KB分の桁を持つ2進数値データなど非常識極まりないデータですし、そんなものが必要な処理というのも思いつきません。 複数の数値や文字列の混在するデータで1KBなら普通だと思いますが、どんなデータを扱うつもりなのか伺わないと適切なアドバイスができないので詳細を教えてください。 そして、そのデータをC言語でどう処理したいのでしょう? この2点をお聞かせください。
補足
回答ありがとうございます。 多倍長の素因数分解をビット演算を用いて行うと、どうなるかを試してみようと考えています。 標準の型ではデータが収まりきらないので、型を作ることはできるかと思い質問させていただいております。
- sakusaker7
- ベストアンサー率62% (800/1280)
> 1kバイト程度の変数型 がどういうイメージのものなのかがわかりません。 その型の変数一つ当たりの大きさが1kバイトということですか? であるなら、 struct BigVariable { unsigned char val[1024]; }; とかしておいて適当に typedefもしておくとかではいかんのでしょうか?
お礼
回答ありがとうございます。 今、プログラムを実行して確かめられないので質問させていただきます。 上記のようにすれば、 int a; a=100; と同じように扱えますか。
お礼
回答ありがとうございます。 rubyの文法を学ぼうと思うのですが参考にするとよい、本やサイトをご存知でしたら教えてください。