
こんばんわ,
現在Redhat Linux 9の環境でCの勉強をしています。
ファイルから読み取ったデータがBIGENDIANの形なので,それをLITTILE ENDIANになおして使用したいのですが,できるだけ高速に変換するアルゴリズムを考えています。
変換するデータは1byte(これは関係なし),2byte,4byte,でそれぞれunsignedのshortintとint型です。
とにかくべた書きでもいいのですが,どのようにすれば高速に変換できるのでしょうか。
glib.hやhtonlなどを使用する方法などよろしくお願いします。
No.2ベストアンサー
- 回答日時:
linux(glibcな処理系)だと,htonl()もインライン展開がなされます。
実行速度はエンディアン変換演算よりも,その周囲の処理全体をみてコード最適化する方が大事。
No.1
- 回答日時:
glib のソースを見る限り
GINT16_FROM_BE とか GINT32_FROM_BE
を使えば、インラインアセンブラに展開されているようです。
htonl は関数呼び出しだからそれがない分 glib 有利・・・かも
ただ、バイトオーダーの変換なんて
glib 使っても自力でマクロ組んでも
そんな劇的に速度が変化するとはおもえないなぁ
こんにちわ,回答ありがとうございます。
ただ,GUINT16_LE_BEなどを使用しようとすると,ヘッダーファイル自体がエラーを起こすんです。
何かダウンロードがおかしいのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAの自動変換機能?
-
ASP.NET SJIS→UTF-8文字コード...
-
php
-
ラドン変換を用いた回転・拡大...
-
C/C++→JAVAに変換するツール
-
tex 郵便記号のだしかた
-
自作ソフトキーボードによる文...
-
ASP.NET変換後のHTMLを見る方法
-
MATLAB/simulinkでのD/A変換の仕方
-
オートリネーム
-
逆コンパイルと逆アセンブルの...
-
MATLABのMATファイル をC言語...
-
ImageMagickでPSDを変換するには。
-
Macターミナルで実行中のプログ...
-
C# シリアル通信でデータ受信...
-
TCP/IP通信時のサーバーからの受信
-
VB6.0 SHELLで起動...
-
シリアル通信の出力バッファと...
-
スーパーのレジで並んでいたら...
-
C言語で、メモリを解放しないで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
家電製品の電力周波数を変える機械
-
Mac 乗数の入力方法
-
3のつく数字と3の倍数のみを表...
-
エクセルVBAの自動変換機能?
-
VB.NETをJavaに変換するツール...
-
c++でmatからvectorへの変換の...
-
分を時間に変換するプログラム
-
緯度、経度の 10進法と 60進法...
-
逆コンパイルと逆アセンブルの...
-
なぜ通信には16進数文字列が使...
-
VB6からVB2010への変換について
-
10進数をBCDに変換する方法
-
C++からCへのソース変換について
-
VB6で10進数を32進数に変換する...
-
php
-
画像ファイル変換(Tiff→PDF)
-
VB.NETからJavaに変換するツー...
-
PHPで、日本語からアルファベッ...
-
WinHelpからHTML Helpに変換
-
マンセル⇔XYZ,RGB変換式或いは...
おすすめ情報