posix shell だけでどこまで計算できるものなのかを知りたいと思い、 bit 演算がどうやったら実現できるのか知りたいと思いました。(特に、 sha256/md5 などを実装してみようとしていた)

32 bit の right rotation bit shift 演算を実現したいです。これは、どうやったらできるでしょうか。 shell には arithmetic expansion があり、数値型としては signed long は保証されていること、 bit 演算子たちがあることから、たぶん実現できそうだ、とは思っています。しかし、 long の bit 長って取得できたんだっけ、それをふまえて正しい bit 演算って何なんだっけ、と思っているので、質問しています。