} } }

    二进制补码

    添加时间:2013-8-5 点击量:

      策画机只能处理惩罚2进制数据(经常是补码!),策画机内部没有10进制和16进制,10进制是人类处理惩罚数据的习惯,Java哄骗API供给的的算法(办法)实现10进制的处理惩罚。16进制是便捷的2进制书写格局。


      一切交给策画机处理惩罚的数据,都要转化为2进制。


      策画机不熟悉正负数,所以底本二进制是没有负数的,但因为运算须要,正负二进制是工钱规定的,所以才有了补码(补充的码)。


    以4位补码为例:



    1. 将高位为1的大数,作为负数应用;

    2. 策画时辰跨越4位数,多出数位主动溢出舍弃

    3. 在不跨越局限景象下,补码运算满够数学规矩

    4. 毛病:数字有局限,不克不及进行超局限策画(例如4位补码的局限是-8~7,8位补码的局限是-128~127)

    5. 希罕要重视运算局限,不然溢出导致运算失足


    见下图:


      由图中可以看出从上到下一一加1,并且以粉色横线为镜面,高低互为反码,这也是补码取否决称现象,由此可得出——~n=-n-1(~n:n取反)


      




    0 x是16进制的前缀,0是8进制的前缀。0 x7fffffff是大16进制数,0 x80000000是小16进制数


    eclipse中数字的2进制和16进制不显示高位的0。




     1 package Test;
    
    2
    3 import java.util.Scanner;
    4
    5 public class Test {
    6 public static void main(String[] args) {
    7 System.out.println(请输入要查看2进制的数字:);
    8 Scanner in = new Scanner(System.in);
    9 int n = in.nextInt();
    10 System.out.println(n+的2进制默示是:+Integer.toBinaryString(n));
    11 System.out.println(n+的16进制默示是:+Integer.toHexString(n));
    12 System.out.println(~100);//应用公式~n=-n-1
    13 }
    14 }





    我们永远不要期待别人的拯救,只有自己才能升华自己。自己已准备好了多少容量,方能吸引对等的人与我们相遇,否则再美好的人出现、再动人的事情降临身边,我们也没有能量去理解与珍惜,终将擦肩而过。—— 姚谦《品味》
    分享到: