~0 为什么等于 -1 ,在C语言中?

    技术2024-08-14  75

    C语言中常见 ~Number ,怎么计算?

    计算一个数字的 ~number

    比如说现在有 A=60所谓~,就是我们要找到那个负数的补码值等于这个数字的取反。那么A 的8位二进制数 就是 0011 1100那首先要计算 ~A 即 ~60 , 那么先取反即 1100 0011 。因为 负数的补码是 取反+1。所以此处逆向操作需要 -1 取反即 1100 0011 -1 == 1100 0010 (第一步逆向操作)1100 0010 =>取反=> 00111101 => 十进制的 61最后结果 A == 60 , ~A = -61C 语言中 ~60 == -61

    计算~0

    0 的补码0000 0000取反 1111 1111逆操作 -1 => 1111 1110取反 => 0000 0001即 1又因此处 是取反 负数 即 ~0 == -1

    任意数

    B=x~B= x二进制 =>取反 => 减1 => 再取反 => 转化为 10 进制的负数
    Processed: 0.022, SQL: 9