bit32

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bu kütüphane bitwise işlemleri gerçekleştirmek için işlevler sağlar.

Sayı Sınırları

Bu kütüphane sayıları imzalanmamış 32 bit sayı olarak ele alır; sayılar kullanılmadan önce dönüştürülecektir (aşağıdaki resme bakın).Ondalık sayılarla birlikte gelen sayılar en yakın bütün sayıya yuvarlanır.

32-bit integer conversion (in hexadecimal)

Özet

İşlevler

  • Bitleri bir verilen yerçekimi tarafından sağa aritmetik olarak kaydırıldıktan sonra bir sayı döndürür.

  • band(numbers : Tuple):number

    Tüm sağlanan sayıların bitwise AND'ini döndürür.

  • Verilen sayının bitwise negasyonunu döndürür.

  • bor(numbers : Tuple):number

    Tüm sağlanan sayıların bitwise OR'unu döndürür.

  • btest(numbers : Tuple):boolean

    Bitwise ve operatörlerinin sıfırdan farklı olup olmadığını tanımlayan bir boolean döndürür.

  • bxor(numbers : Tuple):number

    Tüm sağlanan sayıların bitwise XOR'unu döndürür.

  • Verilen sayıyı değiştirilen bayt sırasıyla döndürür.

  • Verilen sayının 32-bit temsilinde en sol (en önemli) bitinden başlayarak sıfır bit sayısını döndürür.

  • Verilen sayının 32-bit temsilinde en sağdan (en önemli) bit başlayarak sıfır bit sayısını döndürür. Returns the number of consecutive zero bits in the 32-bit representation of the provided number starting from the right-most (least significant) bit.

  • extract(n : number,field : number,width : number):number

    Bir sayıdan bir dizi bit çıkar ve onları imzalı olmayan bir sayı olarak geri döndür.

  • replace(n : number,v : number,field : number,width : number):number

    Verilen bir değer tarafından değiştirilen bir dizi bit ile bir sayının kopyasını döndürün.

  • Bitleri bir sayıya dönüştürülerek sola döndürülmüşten sonra bir sayı verir. Returns a number after its bits have been rotated to the left by a given number of times.

  • Verilen bir yer değiştirme ile sayının bitlerinin mantıksal olarak sola kaydırıldığı bir sayı döndürür.

  • Bitleri bir sayıya göre sağa döndürülmüşten sonra bir sayı ile bir sayı döndürür. Returns a number after its bits have been rotated to the right by a given number of times.

  • Verilen bir yer değiştirme ile sayının bitlerinin mantıksal olarak sağa kaydırıldığı bir sayı döndürür.

İşlevler

arshift

Sayıyı x sağa kaydırarak disp bitlerini geri döndürür.Sayı disp herhangi bir temsil edilebilir tamsayı olabilir.Olumsuz taşımalar sola kayar.

Bu değişim işlemi aritmetik değişim olarak adlandırılan şeydir.Sol taraftaki boş bitler x üst bitin kopyalarıyla doldurulur; sağ taraftaki boş bitler sıfırlarla doldurulur.Özellikle, 31'den yüksek mutlak değerli yer değiştirmeleri sıfıra veya 0xFFFFFFFF (tüm orijinal bitler taşınır) sonuç verir.

Parametreler

Bitlerinin değiştirileceği sayı.

disp: number

Kaydırılacak tamsayısal bit sayısı.

Dönüşler

band

Tüm sağlanan sayıların bitwise AND'ini döndürür.

Her bit, aşağıdaki gerçek tablosuna karşı test edilir:


<th>B</th>
<th>Çıkış</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
A
Bitwise AND of 3 numbers

Parametreler

numbers: Tuple

Dönüşler

bnot

x 'nin bitwise inkârını döndürür.

Negation of a provided number

Herhangi bir tamsayı için x , aşağıdaki kimlik tutar:


assert(bit32.bnot(x) == (-1 - x) % 2^32)

Parametreler

Dönüşler

Tüm sağlanan sayıların bitwise OR'unu döndürür.

Her bit, aşağıdaki gerçek tablosuna karşı test edilir:


<th>B</th>
<th>Çıkış</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
A
Bitwise OR of 3 numbers

Parametreler

numbers: Tuple

Dönüşler

btest

Operatörlerinin bitwise ve 'sinin sıfırdan farklı olup olmadığına dair bir bayrak döndürür.

Parametreler

numbers: Tuple

Dönüşler

bxor

Tüm sağlanan sayıların bitwise XOR'unu döndürür.

Her bit, aşağıdaki gerçek tablosuna karşı test edilir:


<th>B</th>
<th>Çıkış</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
</tbody>
A
Bitwise XOR of 3 numbers

Parametreler

numbers: Tuple

Dönüşler

byteswap

Verilen sayıyı değiştirilen bayt sırasıyla döndürür.

Parametreler

Dönüşler

countlz

Verilen sayının 32-bit temsilinde en sol (en önemli) bitinden başlayarak sıfır bit sayısını döndürür.Verilen sayı sıfırsa 32 döndürür.

Parametreler

Dönüşler

countrz

Verilen sayının 32-bit temsilinde en sağdan (en önemli) bit başlayarak sıfır bit sayısını döndürür. Returns the number of consecutive zero bits in the 32-bit representation of the provided number starting from the right-most (least significant) bit.Verilen sayı sıfırsa 32 döndürür.

Parametreler

Dönüşler

extract

Bitler tarafından oluşturulan imzalanmamış sayıyı ile 'dan çıkarır.Bitler 0'dan (en az önemli) 31'e (en önemli) sayılır.Tüm erişilen bitler [0, 31] aralığında olmalıdır.Varsayılan width için değeri 1'dir.

Parametreler

field: number
width: number
Varsayılan değer: 1

Dönüşler

replace

Bits ile n 'nin bir kopyasını field değiştirerek field + width - 1 'ya değer v tarafından değiştirilmiş olarak döndürür.Ayrıntılar için bit32.extract() ve width ile ilgili çalışmaları görün field ve .

Parametreler

field: number
width: number
Varsayılan değer: 1

Dönüşler

lrotate

Sayı x döndürülmüş disp bitleri sola döndürür.Sayı disp herhangi bir temsil edilebilir tamsayı olabilir.Herhangi bir geçerli yer değiştirme için, aşağıdaki kimlik tutulur:


assert(bit32.lrotate(x, disp) == bit32.lrotate(x, disp % 32))

Özellikle, negatif taşımalar sağa döner.

Parametreler

disp: number

Dönüşler

lshift

Sayıyı x sağa kaydırarak disp bitlerini sola geri döndürür.Sayı disp herhangi bir temsil edilebilir tamsayı olabilir.Olumsuz taşımalar sağa kayar.Herhangi bir yönde, boş bitler sıfırlarla doldurulur.Özellikle, 31'den yüksek mutlak değerli yer değiştirmeleri sıfıra neden olur (tüm bitler taşınır).

Number shifted 3 to the left

Olumlu taşımalar için, aşağıdaki eşitlik geçerlidir:


assert(bit32.lshift(b, disp) == (b * 2^disp) % 2^32)

Parametreler

disp: number

Dönüşler

rrotate

Sayı x döndürülerek sağa yerleştirilir disp bitler. Sayı disp herhangi bir temsil edilebilir sayı olabilir.

Herhangi bir geçerli yer değiştirme için, aşağıdaki kimlik tutulur:


assert(bit32.rrotate(x, disp) == bit32.rrotate(x , disp % 32))

Özellikle, negatif taşımalar sola döner.

Parametreler

disp: number

Dönüşler

rshift

Sayıyı x sağa kaydırarak disp bitlerini geri döndürür.Sayı disp herhangi bir temsil edilebilir tamsayı olabilir.Olumsuz taşımalar sola kayar.Herhangi bir yönde, boş bitler sıfırlarla doldurulur.Özellikle, 31'den yüksek mutlak değerli yer değiştirmeleri sıfıra neden olur (tüm bitler taşınır).

Number shifted 3 to the right

Olumlu taşımalar için, aşağıdaki eşitlik geçerlidir:


assert(bit32.rshift(b, disp) == (b % 2^32 / 2^disp) // 1)

Bu değişim işlemi mantıksal değişim olarak adlandırılır.

Parametreler

disp: number

Dönüşler