• 用位运算实现四则运算


    代码:

     1 #include <cstdio>
     2 
     3 int add(int a, int b) {
     4     if(a == 0 || b == 0) {
     5         return a ^ b;
     6     }
     7     return add( (a&b) << 1, a ^ b);
     8 }
     9 
    10 int nagetive(int x) {
    11     return add(~x, 1);
    12 }
    13 
    14 int sub(int a, int b) {
    15     return add(a, nagetive(b));
    16 }
    17 
    18 int mul(int a, int b) {
    19     int ans = 0;
    20     while(b) {
    21         if(b & 1) 
    22             ans = add(ans, a);
    23         a <<= 1;
    24         b >>= 1;
    25     }
    26     return ans;
    27 }
    28 
    29 int div(int a, int b) {
    30     int ans = 0;
    31     for(int i = 31; i >= 0; i--) {
    32         if( (a >> i) >= b ) {
    33             ans = add(ans, 1 << i);
    34             a = sub(a, b << i);
    35         }
    36     }
    37     return ans;
    38 }
    39 
    40 int main() {
    41     int a = 3, b = 4;
    42     printf("%d
    ", add(a, b));
    43     printf("%d
    ", sub(a, b));
    44     printf("%d
    ", mul(a, b));
    45     printf("%d
    ", div(a, b));
    46 }
    View Code
  • 相关阅读:
    ⑬.nginx缓存
    ⑫.nginx匹配不同的终端http_user-agent
    ⑪.nginx动静分离
    ⑩.nginx静态服务
    OSS 设置ram账户权限
    ⑤ raid
    ⑨nginx 负载均衡
    ⑧nginx 反向代理
    ⑤nginx 常用模块
    ④nginx日志管理
  • 原文地址:https://www.cnblogs.com/zhanzhao/p/4831247.html
Copyright © 2020-2023  润新知