BigInt - Büyük Sayı

BigInt veri tipi bir tamsayının sonuna n koyarak elde edilen değişkenlerin tipidir. Bu tip tamamen tamsayılardan oluşup genellikle number tipinin alabileceği Number.MAX_SAFE_INTEGER sayısı olan 25312^{53}-1 'den pozitif olarak büyük, negatif olarak küçük tam sayıları ifade etmek için kullanılır.

let buyukSayi1 = 1n; 
let buyukSayi2 = -1n; 
alert(buyukSayi1); // 1 olarak çıktı verir.
alert(buyukSayi2); // -1 olarak çıktı verir.
alert(typeof buyukSayi1); //bigint olarak çıktı verir.
alert(typeof buyukSayi2); //bigint olarak çıktı verir.

BigInt veri tipinde değişkenler number tipinde değişkenlerle matematiksel işlemlere sokulamazlar. Sadece kendi aralarında işleme girerler. Bir number tipindeki değişkeni bigInt tipine çevirmek için BigInt() fonksiyonu kullanılır.

let maxTamSayi = BigInt( Number.MAX_SAFE_INTEGER );
let minTamSayi = BigInt( Number.MIN_SAFE_INTEGER );
alert(maxTamSayi + minTamSayi); // 0 çıktısı alınır.
alert(typeof (maxTamSayi + minTamSayi) ); //bigint çıktısı alınır.

BigInt veri tipiyle Math kütüphanesini kullanamazsınız. Bu kütüphane sadece number tipi içindir. BigInt sadece kendi aralarında matematiksel işlemlere sokulur. Bu sebeple bir bigInt veri tipini number tipine çevirerek işleme sokmak mümkün ama güvenli değildir. Çünkü tam olarak istediğiniz sayıya dönüşeceğinden emin olamazsınız.

let bigN = BigInt( Number.MAX_SAFE_INTEGER );
bigN = bigN * bigN * bigN; //kendisini küpüne eşitledik.
alert(bigN); // 730750818665451215712927172538123444058715062271
alert( Number(bigN) ); //7.307508186654512e+47

BigInt veri tipi tamsayı olduğu için bölümlerde ondalıklı sonuç bekleyemezsiniz.

alert( 5n / 2n ); //Sonuç 2n olarak çıkar ve 2 olarak çıktı verir.

Bu tip kriptolama işlemlerinde kullanılmazlar. Çünkü güvenli değildirler ve işlemcide eş zamanlı oluşturulmazlar.

Last updated