double型の軽いビット演算の方法を教えてください。

今double型を整数部と小数部に分けて考えています。
整数部はlong型にいれビット演算してdouble型に戻し、
小数部はMath.pow(2,63)をかけてlong型に入れビット演算してMath.pow(2,-63)をかけてdouble型に戻す作業をしようとしています。
しかし、こんなやり方ではビット演算とは関係がないところでに重くなってしまいます。
どうしたらよいのでしょうか?