OSDN Git Service

[Refactor] #37353 メッセージ整理。 / Refactor messages.
[hengband/hengband.git] / src / z-util.c
index d2830d0..d11e840 100644 (file)
@@ -1,4 +1,4 @@
-/* File: z-util.c */
+/* File: z-util.c */
 
 /*
  * Copyright (c) 1997 Ben Harrison
@@ -229,7 +229,7 @@ void s64b_div(s32b *A1, u32b *A2, s32b B1, u32b B2)
         */
        while (s64b_cmp(A1val, A2val, B1, B2) == 1)
        {
-               s64b_LSHIFT(B1, B2);
+               s64b_LSHIFT(B1, B2, 1);
                bit++;
        }
 
@@ -246,7 +246,7 @@ void s64b_div(s32b *A1, u32b *A2, s32b B1, u32b B2)
                        s64b_sub(&A1val, &A2val, B1, B2);
                }
        
-               s64b_RSHIFT(B1, B2);
+               s64b_RSHIFT(B1, B2, 1);
                bit--;
        }
 
@@ -266,3 +266,19 @@ void s64b_mod(s32b *A1, u32b *A2, s32b B1, u32b B2)
        s64b_sub(A1, A2, tmp1, tmp2);
 }
 
+/*!
+* @brief 符号なし32ビット整数のビット数を返す。
+* @param x ビット数を調べたい変数
+* @return ビット数
+*/
+int count_bits(BIT_FLAGS x)
+{
+       int n = 0;
+
+       if (x) do
+       {
+               n++;
+       } while (0 != (x = x&(x - 1)));
+
+       return (n);
+}