UUID (Evrensel Benzersiz Tanımlayıcı), IETF RFC 4122 ve RFC 9562 standartları ile tanımlanmış 128 bitlik bir tanımlayıcıdır. Standart UUID’ler genellikle tire işaretleriyle ayrılmış beş grup (8-4-4-4-12) halinde 32 onaltılık basamaktan oluşan bir dizi olarak gösterilir (örneğin 550e8400-e29b-41d4-a716-446655440000). 128 bitlik bir sayı 340 undesilyon olası değere izin verdiğinden, dağıtık bilgisayar sistemleri ve veritabanları merkezi bir sunucuyla koordinasyon kurmadan veya yinelenen anahtar çakışması riski taşımadan bağımsız olarak tanımlayıcılar oluşturabilir.

UUID’nin Tamsayı Gösterimi Nedir?

Özünde her UUID, yalnızca 128 bitlik bir ikili (binary) sayıdır (16 bayt). İnsanlar kolaylık sağlamak için UUID’leri genellikle tireli onaltılık dizgiler olarak okusa da, altta yatan değer tek bir büyük işaretsiz ondalık tamsayı olarak da temsil edilebilir. Bu tamsayı, taban-16’dan (onaltılık) taban-10’a (ondalık) dönüştürülen verilerin tamamen aynı 128 bitini temsil eder. İşaretsiz 128 bitlik bir tamsayı, 0’dan (128 bitin tümü sıfır) 340,282,366,920,938,463,463,374,607,431,768,211,455’e (128 bitin tümü bir) kadar uzanır. UUID’deki her bir bit %100 matematiksel doğrulukla korunur.

UUID Nasıl Integer’a Dönüştürülür?

  1. Adım 1: Geçerli 36 karakterlik standart kanonik UUID’nizi, parantezli GUID’inizi veya 32 karakterlik ham onaltılık dizginizi giriş alanına girin veya yapıştırın.
  2. Adım 2: "Dönüştür" düğmesine tıklayın (veya siz yazarken aracın anında hesaplamasına izin verin). Algoritma tüm biçimlendirme tirelerini, parantezleri veya boşlukları kaldırır.
  3. Adım 3: Araç, yerel JavaScript BigInt aritmetiğini kullanarak 32 onaltılık karakteri kesin bir 128 bit işaretsiz tamsayı olarak yorumlar ve kayan nokta hassasiyet kaybını önler.
  4. Adım 4: Tam ondalık tamsayı sonuç kutusunda görünür. Ham biçimlendirilmemiş tamsayıyı veritabanı veya kod kullanımınız için doğrudan panonuza kopyalamak üzere "Kopyala"ya tıklayın.

Matematiksel Dönüşüm Örneği

Kanonik RFC örnek UUID’si olan 550e8400-e29b-41d4-a716-446655440000 değerini ele alalım. Tireler kaldırıldığında, 32 karakterlik onaltılık dizesi 550e8400e29b41d4a716446655440000 olur. Bu taban-16 sayısını taban-10 ondalık tamsayıya dönüştürmek tam olarak 113059749145936325402354257176981405696 (veya binlik ayırıcılarla 113,059,749,145,936,325,402,354,257,176,981,405,696) sonucunu verir. Tersine, minimum Nil UUID (00000000-0000-0000-0000-000000000000) 0’a ve maksimum UUID (ffffffff-ffff-ffff-ffff-ffffffffffff) 340282366920938463463374607431768211455’e dönüşür.

Neden UUID’yi Integer’a Dönüştürmeliyiz?

Bir UUID’yi ondalık tamsayıya dönüştürmek özel programlama, veri mühendisliği ve veritabanı sistemlerinde çok değerlidir. Yaygın kullanım durumları şunları içerir: tanımlayıcıları yalnızca sayısal anahtarları destekleyen sistemlerde veya eski şemalarda saklama; 128 bitlik değerleri iki adet 64 bitlik BIGINT veritabanı sütununa bölme (yüksek bitler ve düşük bitler); Apache Kafka, Cassandra veya ClickHouse gibi dağıtık veritabanlarında tutarlı karma (hashing) ve sayısal bölümleme algoritmaları; bilimsel hesaplamalarda sayısal aralık karşılaştırmaları veya sıralama işlemleri gerçekleştirme; ve kriptografik ile test iş akışlarında bit düzeyinde entropi hata ayıklaması yapma. Dönüştürme, değerin kimliğini değiştirmez—yalnızca aynı 16 baytı ondalık bir mercekle görüntüler.

UUID ve Integer: Temel Farklar

Standart UUID’ler (tireli 36 karakter) insanlar tarafından okunabilir, yazılım çerçeveleri tarafından yaygın olarak tanınır, PostgreSQL gibi veritabanları tarafından yerel olarak desteklenir (UUID veri türü) ve sürüm ile varyant bitlerini gösterecek şekilde görsel olarak yapılandırılmıştır. Buna karşılık, 128 bitlik ondalık tamsayılar (39 basamağa kadar) tamamen sayısaldır; bu da onları matematiksel işlemciler, sayısal serileştirme protokolleri ve yerel UUID ayrıştırıcıları olmayan eski sistemlerle uyumlu kılar. Bununla birlikte, 39 basamaklı sayıları insanların görsel olarak taraması daha zordur ve standart kayan noktalı değişkenlerin güvenli 53 bitlik sınırını aşarak özel BigInt veya 128 bitlik tamsayı desteği gerektirir.

UUID - Integer Dönüşümü Güvenli ve Kayıpsız mıdır?

Evet, bir UUID ile 128 bitlik bir tamsayı arasındaki dönüşüm %100 kayıpsız ve tamamen tersine çevrilebilirdir. Her iki format da ikili verilerin tam olarak aynı 128 bitini temsil ettiğinden, dönüştürme sırasında hiçbir entropi veya bilgi kaybolmaz. Bununla birlikte, standart JavaScript Sayıları (IEEE 754 çift duyarlıklı kayan noktalar) tamsayıları yalnızca 2^53 - 1’e (9,007,199,254,740,991) kadar güvenli bir şekilde temsil edebilir. 128 bitlik bir tamsayıyı standart bir kayan noktada saklamak, en düşük 75 biti sessizce yuvarlar ve bozar. Bu nedenle dönüştürücümüz yerel JavaScript BigInt kullanır ve arka uç uygulamalarının uint128 (Rust, C++), UInt128 (C# .NET), int (Python 3 rastgele duyarlılık) veya NUMERIC/DECIMAL(39,0) (SQL) kullanması önerilir.

128-Bit Integer Range & Bounds

Every UUID spans exactly 128 binary bits (16 octets). The minimum representation is Nil (0) and the maximum is 340,282,366,920,938,463,463,374,607,431,768,211,455 (2128 - 1). This tool uses native arbitrary-precision BigInt arithmetic for 100% mathematical fidelity.

Sıkça Sorulan Sorular

UUID - integer dönüştürücü nedir?

UUID - integer dönüştürücü, 128 bitlik bir Evrensel Benzersiz Tanımlayıcıyı (UUID v4 veya UUID v7 gibi) ayrıştıran ve onaltılık temsilini tam bir ondalık tamsayıya çeviren veya bir ondalık tamsayıyı kanonik bir UUID’ye geri dönüştüren bir geliştirici yardımcı programıdır.

Her UUID tamsayıya dönüştürülebilir mi?

Evet. Her geçerli RFC 4122 ve RFC 9562 UUID’si tam olarak 128 bit (16 bayt) içerir. Herhangi bir 128 bitlik dizi, 0 ile 340,282,366,920,938,463,463,374,607,431,768,211,455 arasında benzersiz bir ondalık tamsayı ile eşleşir.

UUID - integer dönüşümü geri döndürülebilir mi?

Evet, dönüşüm tamamen çift yönlü ve kayıpsızdır. 128 bitlik aralıktaki bir tamsayı, ondalık değer 32 karakterlik bir onaltılık dizgiye dönüştürülerek ve standart 8-4-4-4-12 düzeninde tire işaretleri eklenerek aynı kanonik UUID’ye geri dönüştürülebilir.

Bir UUID tamsayısı ne kadar büyük olabilir?

Bir UUID tamsayısı 39 ondalık basamağa kadar çıkabilir. Olası maksimum değer 2^128 - 1’dir ve bu da 340,282,366,920,938,463,463,374,607,431,768,211,455 değerine eşittir (ffffffff-ffff-ffff-ffff-ffffffffffff değerini temsil eder).

UUID v4 ve UUID v7 destekleniyor mu?

Evet. Tüm UUID sürümleri (v1, v4, v5 ve yeni zamana göre sıralı v7 dahil) 128 bitlik değerlerdir ve ondalık tamsayılara ve tamsayılardan sorunsuz bir şekilde dönüştürülebilir.

Bir UUID’yi tamsayıya dönüştürmek UUID’yi değiştirir mi?

Hayır. Dönüştürme yalnızca sayısal tabanı değiştirir (taban-16 onaltılıktan taban-10 ondalığa). Temel 128 ikili bit tamamen aynı kalır.

Bu UUID - integer dönüştürücünün kullanımı ücretsiz mi?

Evet, FastUUIDGenerator kullanım sınırı, kayıt ve abonelik olmaksızın %100 ücretsizdir.

UUID değerim bir sunucuya yükleniyor mu?

Hayır. Tüm hesaplamalar, istemci tarafı yerel JavaScript BigInt kullanılarak web tarayıcınızda %100 yerel olarak yürütülür. Tanımlayıcılarınız asla bilgisayarınızdan ayrılmaz ve hiçbir zaman günlüğe kaydedilmez veya herhangi bir ağ üzerinden iletilmez.