
No.3ベストアンサー
- 回答日時:
えーと…
Javaから出力したファイルを別の言語で使用したいので、
(X86の)その言語が使用できる形で出力したい。
そのために、リトルエンディアンでファイルに変換したい。
という意味でいいでしょうか?
Javaで書き出し/Javaで読み込み なら、特に変換する必要ないです。
>Javaでファイル出力を行うと
の部分をどうやったのかをちょっと知りたいです。
DataOutputStream#writeFloat()あたりですか?
Float#floatToIntBits()
で、ビット表現が同じintを得ることができるようです。
これをスワップして出力するのはどうですか?
DataOutputStream#writeFloat()も、この方法で変換を掛けてからwriteInt()を呼び出しています。
>JavaVM上で動作させているので、リトルエンディアンのCPUを使用しても
>ビッグエンディアンになってしまう~~~
この認識でいいです。このあたりの機種依存はVMが吸収します。
でないと、オブジェクトのシリアライズなどができなくなりますね。
おっしゃる通り、DataOutputStreamを用意し、writeFloatで出力していました。
floatToIntBits()というメソッドがあるのですね。
同じビット表現のintが得られればできそうです。
Javaを始めたばかりで、プリミティブ型に用意された
メソッドの勉強不足でした。
非常に参考になりました。
ありがとうございます。
No.2
- 回答日時:
そもそも float など 浮動小数点型は機種依存なので
バイトスワップすること自体間違ってますよ。
http://www.microsoft.com/japan/msdn/library/ja/v …
参考URL:http://www.ffortune.net/comp/develop/data/kazu.htm
この回答への補足
参考のリンクを見るとC/C++のようです。
プログラムはJavaで書いています。
JavaVM上で動作させているので、リトルエンディアンのCPUを使用しても
ビッグエンディアンになってしまうというのが個人的解釈ですが、間違っているでしょうか?
No.1
- 回答日時:
質問がおかしいです。
>コンパイルエラーになってしまいます。
>floatで宣言したものに対してバイトスワップを行う方法は何かありませんでしょうか?
コンパイルエラーだということは、方法があっているかの以前の問題で、記述が間違えているということです。
文法を確認してください。
文法がわからないのなら、コンパイルエラーの発生したコードを記述し、「どこがおかしいのでしょうか」という質問をするべきです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- C言語・C++・C# キャスト演算について。 1 2023/07/15 15:28
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- アルバイト・パート バイトについての相談です。 私は4月から大学生です。バイトのシフト希望表に大学の予定が分からないので 1 2023/03/22 16:34
- 労働相談 バイトについて質問です。初バイトの高校生です。 先週、月曜にシフトが入りましたが行かず※、今週の月曜 1 2022/05/26 12:22
- アルバイト・パート 私は4月から大学生です。バイトのシフト希望表に大学の予定が分からないので決まったら連絡しますと書いた 2 2023/03/22 13:55
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.out.printを書くとエラー
-
flush()とclose()について
-
Javascript で、0000 から 9999...
-
1~100までの数字を表示し、か...
-
WebアプリでのPDF出力
-
tomcatのstdout.logを停止したい。
-
1~100までの数字を表示したい
-
一定のスペースを空けて端を揃...
-
IF関数でEmpty値を設定する方法。
-
乱数とは・・・?
-
ダブルクォーテーションのrepla...
-
フォームのピクチャーボックス...
-
メインが含まれていません
-
C言語 重複しない4ケタの乱数...
-
JSPやサーブレットでSystem.out...
-
どうしてもプログラムが動いて...
-
指定した座標の色を得るためには
-
プログラミングの問題です。大...
-
javaでのプログラム(配列)につ...
-
Graphics gra = this.getGraphi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.err. printlnとSystem.o...
-
Javaで改行などが出来ないのです。
-
1~100までの数字を表示し、か...
-
system.out.printが出力されない
-
1~100までの数字を表示したい
-
System.out.printlnの出力先
-
一定のスペースを空けて端を揃...
-
flush()とclose()について
-
Log4jで機能毎に別ファイルへ出...
-
Tomcatが無応答となる現象が起...
-
行列の表示
-
InputStreamはreadが1回しかで...
-
数字文字列をパック10進数に変...
-
switch分が機能しません。
-
System.out.printlnの意味がよ...
-
JavaScriptの変数をjavaのメソ...
-
Log4Jではログを改行できない?
-
テキストエリアで改行する
-
【SQLServer接続のJSPの記述を...
-
CSVファイルへ出力
おすすめ情報