二进制

位(异或)运算:
^:相同为0,不同为1。

|:都为0,结果为0,否则为1。

&:都为1,结果为1,否则为0。

 

一、十进制与二进制的相互转换

1. 十进制转换为二进制,分为整数部分和小数部分。

整数部分采用除2倒取余法,具体做法:用2去除十进制整数,可以得到一个商和余数;在用2去除商,又会得到一个商和余数,如此进行,知道商为0时为止,然后把先的到的余数作为二进制的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
小数部分采用乘2取整法,具体做法:用2乘十进制小数,可以得到积,将积中的整数部分取出,在用2乘余下的小数部分,又得到一个积,在将积中的整数部分取出,如此进行,直到积中的小数部分为0,此时0或1为二进制的最后一位,或者达到所要求的精度为止,然后把取出的整数部分按顺序排列起来,先取得整数作为二进制小数的最高位有效位,后取的整数作为低位有效位。

2. 二进制转换为十进制,方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数。

 

原码:是最简单的机器数表示法,用最高位表示符号位,其他位存放该数的二进制的绝对值

 

反码:正数的反码还是等于原码;负数的反码就是它的原码除符号位外,按位取反

 

补码:正数的补码等于它的原码;负数的补码等于反码+1

 

二进制的原码、反码、补码参考博客:https://zhuanlan.zhihu.com/p/99082236

 
Java中的<<、>>、>>>
<<表示左移,不分正负数,低位补0;
>>表示右移,如果该数为正,则高位补0,若为负数,则高位补1;
>>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
 
参考博客:https://www.cnblogs.com/tangliMeiMei/p/15475842.html
posted on 2021-01-20 13:27  渐行渐远的那些人  阅读(184)  评论(0编辑  收藏  举报