1.简介

  二进制是计算机技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由17世纪至18世纪的德国数学家莱布尼兹提出。在计算机中,所有的数据都是以0和1的形式存在的,比如CPU,内存,硬盘中的数据都是“0”和“1”。也就是说二进制只能有0、1;八进制为:0-7;十进制:0-9;十六进制比较特殊为:0-9,A(10) B(11) C(12) D(13) E(14) F(15)

2.二进制原码、反码、补码

(1)原码

  所谓原码就是机器数,是加了一位符号位的二进制数(因为数值有正负之分),正数符号位为0,负数符号位为1。计算机中存储、处理、运算的数据通常是8位、16位、32位或64位的。

  示例如下

public class Test{
    public static void main(String[] args) {
        System.out.println(toUnsignedString(10));
        System.out.println(toUnsignedString(-10));
    }
    
    final static char[] digits = {'0' , '1'};
    /**获取原码方法,int类型32位,为了方便查看,所以循环32次
     */
    private static String toUnsignedString(int value) {
        StringBuilder sb = new StringBuilder();
        int i = 32;
        int j = value;
        do {
            if (j >= 0) 
                sb.insert(0,digits[j % 2]);
            else
                sb.insert(0,digits[-(j % 2)]);//因为小于0,所以得出的数值为负数,加上负号转为正数
            j /= 2;
            i--;
        } while (i > 0);
        //格式处理一下
        if(value < 0)
            sb.setCharAt(0, '1');
        for (i = 0; i < sb.length(); i++) {
            if((i + 1) % 5 == 0)
                sb.insert(i, " ");
        }
        return sb.toString();
    }
}
View Code

相关文章:

  • 2022-02-15
  • 2021-07-17
  • 2022-12-23
  • 2022-02-18
  • 2021-12-25
  • 2022-12-23
  • 2021-09-15
猜你喜欢
  • 2021-12-04
  • 2022-12-23
  • 2021-11-22
  • 2022-12-23
  • 2021-07-10
  • 2022-02-07
  • 2021-09-16
相关资源
相似解决方案