diff options
Diffstat (limited to 'test/gourdinl/c/floor.c')
-rw-r--r-- | test/gourdinl/c/floor.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/gourdinl/c/floor.c b/test/gourdinl/c/floor.c new file mode 100644 index 00000000..33a57af3 --- /dev/null +++ b/test/gourdinl/c/floor.c @@ -0,0 +1,29 @@ +int main(int n) +{ + int x = 1, i; + + /* for positive values */ + if (n > 0) + { + for (; x <= n >> 1;) + { + x = x << 1; + } + n = x; + } + /* for negative values */ + else + { + n = ~n; + n = n + 1; + for (; x <= n >> 1;) + { + x = x << 1; + } + x = x << 1; + x = ~x; + x = x + 1; + n = x; + } + return n; +} |