首页 > 新闻动态 >  

新闻动态
NEWS

二进制补码

添加时间: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 }





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