```wmd-options language = es title_i18n = errors_manager_title_bitwise title_text = bitwise - ErrorsManager ``` ### bitwise [[@ [Integer] ErrorsManager.bitwise(!Integer code, !Integer bits)]] [[@ [String] ErrorsManager.bitwise(!String code, !Integer bits)]] [[@ [Array] ErrorsManager.bitwise(!Array code, !Integer bits)]] El método **bitwise** es un método objeto nos permite hacer desplazamiento de Bit en el código de error tantos Bits como queramos, siendo el número de Bits positivo hacia la izquierda, creando los Bits requeridos; y siendo el número de Bits negativo hacia la derecha, eliminando consigo ese número de Bits por ese lado. ```py #!/usr/bin/env python # -*- coding: utf-8 -*- from Assets.ErrorsManager import ErrorsManager errors_manager:ErrorsManager = ErrorsManager() options:tuple[int] = (-10, -5, -3, -1, 0, 1, 3, 5, 10) value:int|str|list[int] for i, value in enumerate((105, "pB", [41, 1])): bits:int for bits in options: new_value:int|str|list[int] = errors_manager.bitwise(value, bits) print(( value, errors_manager.to_array_binary(value), bits, new_value, errors_manager.to_array_binary(new_value) )) ``` ```js "use strict"; /** @type {ErrorsManager} */ const errors_manager = new ErrorsManager(), /** @type {Array.} */ options = [-10, -5, -3, -1, 0, 1, 3, 5, 10]; [105, "pB", [41, 1]].forEach((value, i) => options.forEach(bits => { /** @type {number|String|Array.} */ const new_value = errors_manager.bitwise(value, bits); console.log([ value, errors_manager.to_array_binary(value), bits, new_value, errors_manager.to_array_binary(new_value) ]); })); ``` El resultado de estas pruebas son los siguientes: [| |= Valor | Binario | Bits | Desplazado | Binario desplazado | 105 | \["101001", "000001"] | -10 | 0 | \["000000"] | 105 | \["101001", "000001"] | -5 | 3 | \["000011"] | 105 | \["101001", "000001"] | -3 | 13 | \["001101"] | 105 | \["101001", "000001"] | -1 | 52 | \["110100"] | 105 | \["101001", "000001"] | 0 | 105 | \["101001", "000001"] | 105 | \["101001", "000001"] | 1 | 210 | \["010010", "000011"] | 105 | \["101001", "000001"] | 3 | 840 | \["001000", "001101"] | 105 | \["101001", "000001"] | 5 | 3360 | \["100000", "110100"] | 105 | \["101001", "000001"] | 10 | 107520 | \["000000", "010000", "011010"] | "pB" | \["101001", "000001"] | -10 | "A" | \["000000"] | "pB" | \["101001", "000001"] | -5 | "DA" | \["000011", "000000"] | "pB" | \["101001", "000001"] | -3 | "NA" | \["001101", "000000"] | "pB" | \["101001", "000001"] | -1 | "0A" | \["110100", "000000"] | "pB" | \["101001", "000001"] | 0 | "pB" | \["101001", "000001"] | "pB" | \["101001", "000001"] | 1 | "SD" | \["010010", "000011"] | "pB" | \["101001", "000001"] | 3 | "IN" | \["001000", "001101"] | "pB" | \["101001", "000001"] | 5 | "g0" | \["100000", "110100"] | "pB" | \["101001", "000001"] | 10 | "AQa" | \["000000", "010000", "011010"] | \[41, 1] | \["101001", "000001"] | -10 | \[0] | \["000000"] | \[41, 1] | \["101001", "000001"] | -5 | \[3, 0] | \["000011", "000000"] | \[41, 1] | \["101001", "000001"] | -3 | \[13, 0] | \["001101", "000000"] | \[41, 1] | \["101001", "000001"] | -1 | \[52, 0] | \["110100", "000000"] | \[41, 1] | \["101001", "000001"] | 0 | \[41, 1] | \["101001", "000001"] | \[41, 1] | \["101001", "000001"] | 1 | \[18, 3] | \["010010", "000011"] | \[41, 1] | \["101001", "000001"] | 3 | \[8, 13] | \["001000", "001101"] | \[41, 1] | \["101001", "000001"] | 5 | \[32, 52] | \["100000", "110100"] | \[41, 1] | \["101001", "000001"] | 10 | \[0, 16, 26] | \["000000", "010000", "011010"] |]