Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
toBaseOut - schimba basa unui string
Last Updated: Aug 27 2020 07:44, Started by
MihaiProg
, Aug 18 2020 06:18
·
0
#1
Posted 18 August 2020 - 06:18
toBaseOut - schimba basa unui string
https://github.com/M...er/bignumber.js // Called by BigNumber and BigNumber.prototype.toString. convertBase = (function () { var decimal = '0123456789'; /* * Convert string of baseIn to an array of numbers of baseOut. * Eg. toBaseOut('255', 10, 16) returns [15, 15]. * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5]. */ function toBaseOut(str, baseIn, baseOut, alphabet) { var j, arr = [0], arrL, i = 0, len = str.length; for (; i < len;) { for (arrL = arr.length; arrL--; arr[arrL] *= baseIn); arr[0] += alphabet.indexOf(str.charAt(i++)); for (j = 0; j < arr.length; j++) { if (arr[j] > baseOut - 1) { if (arr[j + 1] == null) arr[j + 1] = 0; arr[j + 1] += arr[j] / baseOut | 0; arr[j] %= baseOut; } } } return arr.reverse(); } Codul este Javascript, nu inteleg deloc "arr[0] += alphabet.indexOf(str.charAt(i++));" asta face concatenare de caractere sau...??? |
#2
Posted 18 August 2020 - 07:19
Verifica in debugger sau printr-un mesaj inserat dupa linia respectiva.
|
#3
Posted 18 August 2020 - 08:02
Cand am vazut in titlu de sus toBaseOut, m-am gaindit ca e o miscare de a-l elimina pe basescu.
|
#4
Posted 18 August 2020 - 09:53
@Argv: Ce debugger pentru Javascript?
Am inserat alert(arr); si am ajuns la concluzia ca "arr[0] += alphabet.indexOf(str.charAt(i++));" nu insereaza nici un element, initial arr contine doar un element : [0] if (arr[j + 1] == null) arr[j + 1] = 0;aici este inserat un element nou [0] dar cum este "legal" in JavaScipt sa faci asta? |
#5
Posted 19 August 2020 - 06:50
Sunt si debuggere pentru Javascript, sunt chiar si online.
Linia arr[0] += alphabet.indexOf(str.charAt(i++)); calculeaza o suma. De exemplu daca rulezi urmatorul cod: var arr = [0] arr[0] += 3 arr[0] += 4 alert(arr) Vei obtine un array cu 1 element: 7 Daca rulezi codul: var arr = [0] arr[0] = 3 arr[1] = 4 alert(arr) Vei obtine un array cu 2 element: 3, 4 aici este inserat un element nou [0] dar cum este "legal" in JavaScipt sa faci asta? Array-ul este dinamic, poti adauga elemente. |
#6
Posted 19 August 2020 - 12:25
Debugger pentru Javascript e orice browser odata intrat in developer tools.
Aria de programare e mai jos, asta-i arie pentru a prezenta programe functionale ce pot fi utile altora. |
#7
Posted 20 August 2020 - 13:17
Functia toBaseOut este 100% functionala, problema era intelegerea ei.
Base16ToBase10 - o pagina html, poate cineva o gaseste utila. <html> <head> <title>Base 16 to base 10</title> </head> <body> <p>Base 16 to base 10 convertor</p> Hex nr. <input type="text" placeholder="Type something..." id="myInput" size="100"><br> <button type="button" onclick="Base16ToBase10()">Convert</button><br> Result <input type="text" id="myOutput" size="100"><br> <button type="button" onclick="copy()">Copy</button>  <button type="button" onclick="reset()">Reset</button><br> <script> // https://www.w3schools.com/howto/howto_js_copy_clipboard.asp function copy() { /* Get the text field */ var copyText = document.getElementById("myOutput"); /* Select the text field */ copyText.select(); copyText.setSelectionRange(0, 99999); /*For mobile devices*/ /* Copy the text inside the text field */ document.execCommand("copy"); } function reset() { document.getElementById("myInput").value = ""; document.getElementById("myOutput").value = ""; } function Base16ToBase10() { // Selecting the input element and get its value var inputVal = document.getElementById("myInput").value.toLowerCase(); var convResult = toBaseOut(inputVal, 16, 10, '0123456789abcdef'); var joined = convResult.join(""); // join array with no char between document.getElementById("myOutput").value = joined; // set the result value } /* http://github.com/MikeMcl/bignumber.js/blob/master/bignumber.js * Convert string of baseIn to an array of numbers of baseOut. * Eg. toBaseOut('255', 10, 16) returns [15, 15]. * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5]. */ function toBaseOut(str, baseIn, baseOut, alphabet) { var j, arr = [0], arrL, i = 0, index = 0, len = str.length; for (; i < len;) { for (arrL = arr.length; arrL--; arr[arrL] *= baseIn); index = alphabet.indexOf(str.charAt(i++)); if (index<0) return []; // return empty array arr[0] += index; for (j = 0; j < arr.length; j++) { if (arr[j] > baseOut - 1) { if (arr[j + 1] == null) arr[j + 1] = 0; arr[j + 1] += arr[j] / baseOut | 0; arr[j] %= baseOut; } } } return arr.reverse(); } </script> </body> </html> |
#8
Posted 27 August 2020 - 07:44
Am gasit multe exemple pe internet care convertesc din string (baza 10/baza 16) in numar, nu asta este ce vroiam. Problema cu asta este ca trebuie sa stochezi numarul si nu ai la dispozitie decat 32 bits: nu prea am ce sa fac cu numarul asta asa de mic, plus ca trebui convertit din nou numarul in string pentru a putea fi afisat.
Salutari. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users