C语言 for(i--;i>=0;i--) a[i]=~a[i]&0xF;//&0xF数不就变了吗?

日期:2021-07-27 11:11:18 人气:1

C语言 for(i--;i>=0;i--) a[i]=~a[i]&0xF;//&0xF数不就变了吗?

一位十六进制数可以用4位二进制数表示,计算机也都是这样表示的,为什么一定要用8位呢?那么,11111111 11111111 11111111 11111110是-2,11111111 11111110也是-2,你怎么就认定11111110是-2其他的就不是呢?而且,能谈到反码加1求补时,都是对负数对应的正数而言的,操作的结果就是负数的补码;如果对负数再进行反码加1,那就又变成原码了……这段代码中是这样处理的??比如25,它的二进制数是0001 1001,这是十进制数25在计算机里的表示;我们把它用%1
    A+
热门评论