CGB2202 binario

binario:

revisión:

  1. Expresión regular:
    • Describe el formato del contenido de la cadena, que generalmente se usa para determinar si el contenido de la cadena cumple con los requisitos.
    • Sintaxis de expresiones regulares-------------Comprender
  2. Métodos relacionados con expresiones regulares en String:
    • matches (): use la expresión regular dada para verificar si el contenido de la cadena actual cumple con los requisitos, devuelva verdadero si cumple con los requisitos y devuelva falso si no cumple con los requisitos
    • split (): divida la cadena actual de acuerdo con la parte que satisface la expresión regular y divídala en una matriz de cadenas
    • replaceAll(): reemplaza la parte de la cadena actual que satisface la expresión regular con la cadena especificada y devuelve la cadena reemplazada
  3. Objeto:
    • El originador, todas las clases heredan directa o indirectamente Objeto, todo es un objeto
    • Hay dos métodos frecuentemente anulados: toString() y equals()
      • El toString() en Object devuelve el nombre completo @ dirección de la clase, que no tiene un significado de referencia, por lo que a menudo reescribimos toString() para devolver los datos que necesitamos.
      • El equals() en Object todavía compara la dirección del objeto y no tiene un significado de referencia, por lo que a menudo se anula para reescribir equals() para comparar las propiedades del objeto.
  4. Clase de contenedor:
    • 8 clases contenedoras, para resolver el problema de que los tipos de datos básicos no pueden participar en el desarrollo orientado a objetos
    • Lanzamiento de JDK1.5: función de desempaquetado automático, que permite la asignación directa entre tipos básicos y clases de empaque, la capa inferior complementará automáticamente el código para completar el trabajo de conversión

notas:

que es binario
  1. Regla de conteo de dos a uno

  2. ¿Cómo convertir binario a decimal?

    • Acumula el peso de cada 1 posición de un número binario
  3. ¡Todas las variables/constantes en Java almacenan números binarios!

  4. demostración de código:

    public class Demo01 {
          
          
        public static void main(String[] args) {
          
          
            /*
             1.java在编译期间将10进制数编译为2进制数,按2进制来运算
                 .java(50) 编译后 .class(110010)
             2.Integer.toBinaryString()可以将底层的2进制数显示出来
             3.int类型是32位2进制数,显示2进制数时自动省略高位0
             4.System.out.println()将2进制转换为10进制输出
             */
            int n = 50; //110010
            System.out.println(Integer.toBinaryString(n)); //2进制
            n++; //110011
            System.out.println(n); //10进制
            System.out.println(Integer.toBinaryString(n)); //2进制
        }
    }
    
que es hexadecimal
  1. Reglas de conteo para cada 16 en 1
  2. Porque la escritura binaria es demasiado engorrosa y problemática.
    00000000 00000000 00000000 00110010
    
    Por lo tanto, el hexadecimal se usa a menudo para abreviar números binarios.
  3. Cómo abreviar: comience el binario desde el dígito más bajo y abrevie cada 4 dígitos a 1 hexadecimal
  4. demostración de código:
    public class Demo02 {
          
          
        public static void main(String[] args) {
          
          
            /*
              16进制:缩写2进制
               1)0x是16进制字面量前缀,0x开头则编译器按照16进制编译
               2)Java 7提供了2进制字面量前缀 0b----不用,一般都用16进制
             */
            int n = 0x4f057afe; //0x表示16进制
            int m = 0b1001111000001010111101011111110; //0b表示二进制
            System.out.println(Integer.toBinaryString(n)); //按2进制输出
            System.out.println(Integer.toBinaryString(m)); //按2进制输出
            //结论:用16进制来表示2进制更方便
    
            /*
             8进制:
             1)逢8进1的计数规则
             2)前缀0表示为8进制
             3)数字:0,1,2,3,4,5,6,7,没有7以上的数字
             */
            //----小面试题(8进制平时不用)
            //权     64 8 1
            int x =  067; //0开头表示8进制
            System.out.println(x); //十进制的55(6个8加上7个1)
    
        }
    }
    
complemento
  1. Un método de codificación para procesar números con signo (números positivos y negativos) en una computadora. El tipo mínimo de complemento en java es int, 32 dígitos

  2. Tome el binario de 4 dígitos como ejemplo para explicar las reglas de codificación del complemento:

    • Al calcular, si supera los 4 dígitos, automáticamente se desbordará y descartará, manteniendo los 4 dígitos sin cambios.
    • Use un número binario de 4 dígitos dividido por la mitad como un número negativo
    • El bit más alto se llama bit de signo, el bit más alto es 1 es negativo, el bit más alto es 0 es positivo
      int n = -3;
      System.out.println(Integer.toBinaryString(n));
      
      /*
      规律数:
      1)0111为4位补码的最大值,规律是1个0和3个1,可以推导出:
        32位补码的最大值,是1个0和31个1-----(011111111...)
      2)1000为4位补码的最小值,规律是1个1和3个0,可以推导出:
        32位补码的最小值,是1个1和31个0-----(100000000...)
      3)1111为4位补码的-1,规律是4个1,可以推导出:
        32位补码的-1是,是32个1------------(11111111...)
      */    
      int max = 2147483647; //int的最大值
      int min = -2147483648; //int的最小值
      System.out.println(Integer.toBinaryString(max)); //011111...
      System.out.println(Integer.toBinaryString(min)); //100000...
      System.out.println(Integer.toBinaryString(-1)); //11111...
      
      
  3. Entendiendo los valores negativos en profundidad:

    • Recuerde -1 está codificado como 32 1s
    • Reste el peso correspondiente a la posición 0 con -1
      11111111111111111111111111111111 = -1
      11111111111111111111111111111101 = -1-2 = -3
      11111111111111111111111111111001 = -1-2-4 = -7
      11111111111111111111111110010111 = -1-8-32-64 = -105
      
  4. Simetría complementaria:

    • Fórmula: -n=~n+1 Conclusión: El complemento de un número = la inversión de este número + 1

    • por ejemplo:

      int n = -3;
      int m = ~n+1;
      System.out.println(m); //3  -3的补码就是-3取反+1
      
    • Preguntas de entrevista:

      System.out.println(~100+1); 上述代码的运算结果是(C):100的补码
      A. -98  B.-99 C.-100 D.-101
      System.out.println(~-100+1); 上述代码的运算结果是(C):-100的补码
      A.98  B.99  C.100  D.101
      
operación de bits
~ 取反
& 与运算
| 或运算
>>> 右移位运算
<< 左移位运算
& y operador
  1. Regla básica: 0 es 0

    0 & 0 = 0
    0 & 1 = 0
    1 & 0 = 0
    1 & 1 = 1
    
  2. Al operar, alinee los dos números y realice la operación AND en los bits correspondientes

    8421
              6   1    4   f    7   b    b   b
    n  =      01100001 01001111 01111011 10111011
    m  =      00000000 00000000 00000000 11111111  0xff
    k  = n&m  00000000 00000000 00000000 10111011
    

    Lo que hace el código anterior:

    • Divide los últimos 8 bits de n y guárdalos en k
    • El número m se denomina máscara y los 8 1 se denominan máscara de 8 bits.
    • La operación anterior se llama: operación de máscara

    Código:

    int n = 0x614f7bbb;
    int m = 0xff; //掩码
    int k = n & m; //将n的最后8位数拆分出来,存储到k中
    System.out.println(Integer.toBinaryString(n));
    System.out.println(Integer.toBinaryString(m));
    System.out.println(Integer.toBinaryString(k));
    
| O operación
  1. Regla básica: 1 es 1
    0 | 0 = 0
    0 | 1 = 1
    1 | 0 = 1
    1 | 1 = 1
    
  2. Al operar, alinee los dos dígitos y realice una operación OR en los dígitos correspondientes.
    权                       8421
    n  =      00000000 00000000 00000000 10111001   0xb9
    m  =      00000000 00000000 10111101 00000000   0xbd00
    k  = n|m  00000000 00000000 10111101 10111001
    
    El significado del caso anterior: fusión de dislocación
    Código:
    int n = 0xb9;
    int m = 0xbd00;
    int k = n | m; //将n与m错位合并
    System.out.println(Integer.toBinaryString(n));
    System.out.println(Integer.toBinaryString(m));
    System.out.println(Integer.toBinaryString(k));
    
>>> operación de desplazamiento a la derecha
  1. Reglas básicas: mueva todo el número binario a la derecha, los bits bajos se descartan automáticamente cuando se desborda y los bits altos se llenan con 0
    权                      8421
               6   7    9   f    1   d    9   8
    n =        01100111 10011111 00011101 10011000
    m = n>>>1  001100111 10011111 00011101 1001100
    k = n>>>2  0001100111 10011111 00011101 100110
    g = n>>>8  00000000 01100111 10011111 00011101
    
  2. Código:
    int n = 0x679f1d98;
    int m = n>>>1;
    int k = n>>>2;
    int g = n>>>8;
    System.out.println(Integer.toBinaryString(n));
    System.out.println(Integer.toBinaryString(m));
    System.out.println(Integer.toBinaryString(k));
    System.out.println(Integer.toBinaryString(g));
    
<< operación de desplazamiento a la izquierda
  1. Reglas básicas: Desplace todo el número binario a la izquierda, descarte el desbordamiento de orden superior y agregue 0 al de orden inferior.
    权                        8421
                 5   e    4   e    0   d    e   e
    n =          01011110 01001110 00001101 11101110
    m = n<<1     1011110 01001110 00001101 111011100
    k = n<<2     011110 01001110 00001101 1110111000
    
  2. código
    int n = 0x5e4e0dee;  
    int m = n<<1;
    int k = n<<2;
    System.out.println(Integer.toBinaryString(n));
    System.out.println(Integer.toBinaryString(m));
    System.out.println(Integer.toBinaryString(k));
    
Significado matemático de la operación de cambio
权    64  32  16  8  4  2  1
                  0  1  0  1 = 5      向左移动
              0   1  0  1    = 10
          0   1   0  1       = 20
      0   1   0   1          = 40

Código de desplazamiento a la izquierda: verificación de autocodificación

int n = 5;
System.out.println(n<<1); //10
System.out.println(n<<2); //20
System.out.println(n<<3); //40

Código de desplazamiento a la derecha: Verificación de autocodificación

int n = 100;
System.out.println(n>>>1); //?
System.out.println(n>>>2); //?
System.out.println(n>>>3); //?

Notas de esencia:

Contenido de fondo puro, requiere tanta absorción como sea posible, tanto como puedas absorber, y si no puedes absorberlo, ríndete.

  1. Qué es binario: cada regla de conteo 2 en 1, las variables/constantes en la computadora se operan de acuerdo con el binario

    • Binario:
      • Reglas: Cada 2 entra en 1
      • Números: 0 1
      • bases: 2
      • Derecha: 128 64 32 16 8 4 2 1
    • Cómo convertir binario a decimal:
      • Sume los pesos de cada 1 posición de un número binario ------------ número positivo
  2. Qué es hexadecimal: reglas de conteo para cada 16 en 1

    • hexadecimal:
      • Reglas: 1 de cada 16
      • Números: 0 1 2 3 4 5 6 7 8 9 abcdef
      • base: 16
      • Derecha: 4096 256 16 1
    • Propósito: debido a que la escritura binaria es demasiado engorrosa, el hexadecimal se usa a menudo para abreviar números binarios
    • Cómo abreviar: comience desde el dígito más bajo y abrevie cada 4 dígitos a 1 hexadecimal
  3. Complemento:

    • Un método de codificación para procesar números con signo (números positivos y negativos) en una computadora. El tipo mínimo de complemento en java es int, 32 dígitos
    • Tome el binario de 4 dígitos como ejemplo para explicar las reglas de codificación del complemento:
      • Al calcular, si supera los 4 dígitos, automáticamente se desbordará y descartará, manteniendo los 4 dígitos sin cambios.
      • Use un número binario de 4 dígitos dividido por la mitad como un número negativo
      • El bit más alto se llama bit de signo, el bit más alto es 1 es negativo, el bit más alto es 0 es positivo
    • Entendiendo los valores negativos en profundidad:
      • Recuerde -1 está codificado como 32 1s
      • Valor negativo: restar el peso correspondiente a la posición 0 de -1
    • Simetría complementaria:
      • Conclusión: el complemento de un número = el inverso de este número + 1 (inverso +1) fórmula: -n=~n+1
        complemento a 6 = 6 inverso + 1
        complemento a -3 = -3 inverso + 1
      • Preguntas de entrevista:
    System.out.println(~100+1);  前面代码的运算结果是(C):注:100的补码
    A.-98  B:-99  C:-100  D:-101
    System.out.println(~-100+1); 前面代码的运算结果是(C)::-100的补码
    A.98   B:99   C:100   D:101
    
  4. Operación de bits:

    • ~: Negativo (0 a 1, 1 a 0)
    • &: operación Y (0 es 0)
    • |: operación OR (1 es 1)
    • : operación de cambio a la derecha

    • <<: operación de desplazamiento a la izquierda

Reponer:

  1. Debe tener:
    • que es binario
    • Qué es el hexadecimal, la razón de la existencia del hexadecimal
    • Conversión entre binario y hexadecimal
:       64  32  16  8  4  2  1
          1   1   0   0  1  0  0          = 100  右移位
              1   1   0  0  1  0          = 50
                  1   1  0  0  1          = 25
                      1  1  0  0          = 12:       64  32  16  8  4  2  1
n                     0  1  0  1 = 5
m                  0  1  0  1    = 10
k             0    1  0  1       = 20

int n = 5;
int m = n<<2;
System.out.println(m); //20


Supongo que te gusta

Origin blog.csdn.net/jason13579/article/details/123702164
Recomendado
Clasificación