ファイルのビット操作について
Posted: 2009年6月02日(火) 10:15
お世話になっております。
C言語でゲームを作っていてセーブ機能を作っているときにわからないことがあったので質問させていただきました。
ファイルをfwrite関数やfread関数で読み書きをしていて、セーブをしたい内容をセーブ専用の構造体にいれています。
その後、セーブ専用の構造体を作り、数値を入れ、それをfwrite関数やfread関数でファイル入出力しています。
その時バイナリモードで入出力していますが、念のため暗号化をしようと思いビット操作することにしました。
一番手軽にできそうな構造体の中身を全て反転ビットをさせようと思ったのですが効率的な方法が思いつきません。
もちろん下記のようにすればできるのですがセーブしたい変数の量が多くなってしまった時や入出力したい構造体の変数に
自作の構造体があった時などに非常に大変になってしまうので、できれば避けたいです。
例)
dat.suuti = ~suuti;
dat.abc.suuti2 = ~abc.suuti2;
これ以外の方法でビット操作する方法はないでしょうか?
動作するプログラムをここに書くとあまりにも長くなってしまうためは添付しておきます。
OSは[Windows Vista]で開発環境は[Microsoft Visual C++ 2008 Express Edition]です。
よろしくお願いします。
C言語でゲームを作っていてセーブ機能を作っているときにわからないことがあったので質問させていただきました。
ファイルをfwrite関数やfread関数で読み書きをしていて、セーブをしたい内容をセーブ専用の構造体にいれています。
その後、セーブ専用の構造体を作り、数値を入れ、それをfwrite関数やfread関数でファイル入出力しています。
その時バイナリモードで入出力していますが、念のため暗号化をしようと思いビット操作することにしました。
一番手軽にできそうな構造体の中身を全て反転ビットをさせようと思ったのですが効率的な方法が思いつきません。
もちろん下記のようにすればできるのですがセーブしたい変数の量が多くなってしまった時や入出力したい構造体の変数に
自作の構造体があった時などに非常に大変になってしまうので、できれば避けたいです。
例)
dat.suuti = ~suuti;
dat.abc.suuti2 = ~abc.suuti2;
これ以外の方法でビット操作する方法はないでしょうか?
動作するプログラムをここに書くとあまりにも長くなってしまうためは添付しておきます。
OSは[Windows Vista]で開発環境は[Microsoft Visual C++ 2008 Express Edition]です。
よろしくお願いします。