0取反是1,0代表正数,1代表负数,所以结果是-1。
按位取反是指按照"二进制位"0 的二进制为 0000 0000 0000 0000 取反以后得到 1111 1111 1111 1111 这个是-1的补码
按位取反,0就是 32个0bit(针对int类型), 取反后是32个1bit即16进制的0xffff_ffff ,而-1==0xffff_ffff,所以0取反就是-1。。。怎么算出来很简单, 计算机中数据是补码形式存储, -1对应的补码是1取反+1, 1取反==0xffff_fffe, 那么再+1就是 0xffff_ffff。。。
如果你是逻辑取反,!0就是1,右移就是0了。
字面量 0 的类型为 int,取反後全部位为 1,作为有符号整数是 -1,算术右移后也不变。如果用字...
i为int类型 通常占4个字节 0的原码:0000 0000 0000 0000 0000 0000 0000 0000 取反: 1111 1111 1111 1111 1111 1111 1111 1111 最高位是1所以是负数,求其原始数据,方法是 再次取反加1(符号位不变)取反: 1000 0000 0000 0000 0000 0000 0000 0000 加1 1000 0000 0000 0000 000...
按位取反就是0变1,1变0,比如0,按字节在内存中二进制为00000000,取反后为11111111,这个值是-1的补码,当然要是无符号的话值为2551内存中为00000001,取反后为11111110,有符号为-2,无符号为254 查看原帖>> 记得采纳啊
而且为了方便数值比较大小,甚至引入移码【就是在补码的基础上,符号位取反而已】。那么问题来了,为什么不一开始就规定1为正 只看楼主收藏回复 瓜保熟- 计算机中有符号数为什么规定0为正,1为负?而且为了方便数值比较大小,甚至引入移码【就是在补码的基础上,符号位取反而已】。那么问题来了,为什么不一开始就规定1...
[-0]原=[-0]补 为什么?如果把-0的补码换算成原码是不是-1再取反?10怎么-1?符号位参加运算吗 相关知识点: 试题来源: 解析 [-0]原=(10000000)B[-0]补=原码取反+1=(01111111)B+1=(10000000)B这是按八位计算. 结果一 题目 负0的原码为什么负0的补码[-0]原=[-0]补 为什么?如果把-0的补码...