MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

JavaScript - Konversikan 24 digit angka heksadesimal ke desimal, tambahkan 1 lalu ubah kembali?

Versi ini akan mengembalikan string selama string input, sehingga overflow diabaikan jika inputnya seperti "ffffffff".

function hexIncrement(str) {
    var hex = str.match(/[0-9a-f]/gi);
    var digit = hex.length;
    var carry = 1;

    while (digit-- && carry) {
        var dec = parseInt(hex[digit], 16) + carry;
        carry = Math.floor(dec / 16);
        dec %= 16;
        hex[digit] = dec.toString(16);
    }
    return(hex.join(""));
}

document.write(hexIncrement("55a98f19b27585d81922ba0b") + "<BR>");
document.write(hexIncrement("ffffffffffffffffffffffff"));

Versi ini dapat mengembalikan string yang 1 karakter lebih panjang dari string input, karena input seperti "ffffffff" terbawa menjadi "100000000".

function hexIncrement(str) {
    var hex = str.match(/[0-9a-f]/gi);
    var digit = hex.length;
    var carry = 1;

    while (digit-- && carry) {
        var dec = parseInt(hex[digit], 16) + carry;
        carry = Math.floor(dec / 16);
        dec %= 16;
        hex[digit] = dec.toString(16);
    }
    if (carry) hex.unshift("1");
    return(hex.join(""));
}

document.write(hexIncrement("55a98f19b27585d81922ba0b") + "<BR>");
document.write(hexIncrement("ffffffffffffffffffffffff"));

Saya ingin tahu apakah saran pengguna2864740 untuk bekerja dengan potongan 12 digit akan menawarkan keuntungan apa pun. Yang mengejutkan saya, meskipun kodenya terlihat lebih rumit, sebenarnya sekitar dua kali lebih cepat. Tapi versi pertama juga berjalan 500.000 kali per detik, jadi tidak seperti yang Anda lihat di dunia nyata.

function hexIncrement(str) {
    var result = "";
    var carry = 1;
    while (str.length && carry) {
        var hex = str.slice(-12);
        if (/^f*$/i.test(hex)) {
            result = hex.replace(/f/gi, "0") + result;
            carry = 1;
        } else {
            result = ("00000000000" + (parseInt(hex, 16) + carry).toString(16)).slice(-hex.length) + result;
            carry = 0;
        }
        str = str.slice(0,-12);
    }
    return(str.toLowerCase() + (carry ? "1" : "") + result);
}

document.write(hexIncrement("55a98f19b27585d81922ba0b") + "<BR>");
document.write(hexIncrement("000000000000ffffffffffff") + "<BR>");
document.write(hexIncrement("0123456789abcdef000000000000ffffffffffff"));


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dapatkan satu elemen dari larik objek yang merupakan bagian dari satu dokumen (luwak)

  2. MongoDB Gagal Memulai - ***batalkan setelah kegagalan fassert()

  3. Variabel lingkungan OpenShift Python mongoDB tidak disetel/tidak dapat terhubung

  4. Laravel 5 Jumlah kolom yang dikalikan dengan fasih untuk mongo DB

  5. Gagal menjalankan Mongodb