Everlasting Benefit

dolan日記 - 運用でカバーするBLOG

  ホーム :: 連絡をする :: 同期する  :: Login
投稿数  71  :: 記事 0 :: コメント 2790 :: トラックバック 8

ニュース

2012.11.10 わんくま同盟 福岡勉強会 #24 スピーカ

自己紹介

本名:永利勤(ながとしつとむ)
北九州に住む技術系会社員。
趣味は車と酒。

わんくま同盟

  • わんくま同盟
  • C#, VB.NET 掲示板
  • ライセンスオンライン

書庫

日記カテゴリ

リンク

ぱぱっと書かせるプログラムの問題、の続き?の件

れいさん、すごいですね。

ソース再掲(※ちょっと書き直しました)

bool isAPo2(int num) 
{
union
{
DWORD dw[2];
double dbl;
} data;

if (num == 0)
return false;

data.dbl = (double)num;

return ( (data.dw[0] == 0) && ((data.dw[1] & 0xfffff) == 0));
}

処理としては入力をdoubleに変換して、仮数部が0かどうかを判断しています。

浮動小数点形式に関してはIEEE754でぐぐるとなんぼでもでてきますが、浮動小数点形式に変換するというのは「1.*** × 2」の形式に変換することであり、2の乗数だと仮数部がぴったり1.0000…になります。で、内部形式上、最初の1は省略するので、仮数部が0かどうかで、もとの数字が2の乗数かどうかわかるというわけです。

おそまつm(__)m

投稿日時 : 2008年7月18日 8:00

コメント

# re: 2 の階乗かどうかを判定してみるテスト 2008/07/18 8:05 あんどちん
ビッグエンディアンでも大丈夫ですか?

# re: 2 の階乗かどうかを判定してみるテスト 2008/07/18 8:11 επιστημη
× 階乗
○ べき乗


# re: 2 の階乗かどうかを判定してみるテスト 2008/07/18 8:26 dolan
>あんどちん(さん)
ええ、環境依存は自覚しております(汗)
ま、あくまでもネタということで笑ってスルーしてやってください(笑)

>επιστημηさん
わっはっは。
黒龍さんのをコピペしたのがバレバレっすねf^^;

# SLlizCUQiMFBV 2022/04/19 12:45 johnanz
http://imrdsoacha.gov.co/silvitra-120mg-qrms

コメントの投稿

タイトル:
名前:
Url:
コメント: