當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Dart BigInt.toSigned用法及代碼示例

dart:core 庫中BigInt.toSigned 方法的用法介紹如下。

用法:

BigInt toSigned(
   int width   
)

返回此整數的最低有效 width 位,將保留的最高位擴展到符號。這與使用帶符號的 2-s 補碼表示截斷值以適合 width 位相同。返回的值在所有高於 width 的位置具有相同的位值。

var big15 = BigInt.from(15);
var big16 = BigInt.from(16);
var big239 = BigInt.from(239);
                               //     V--sign bit-V
big16.toSigned(5) == -big16;   //  00010000 -> 11110000
big239.toSigned(5) == big15;   //  11101111 -> 00001111
                               //     ^           ^

此操作可用於從低級語言模擬算術。例如,要增加一個 8 位有符號數量:

q = (q + 1).toSigned(8);

q 將從 0 計數到 127 ,換行到 -128 並重新計數到 127

如果輸入值適合 width 位且沒有截斷,則結果與輸入相同。避免截斷 x 所需的最小寬度是 x.bitLength + 1 ,即

x == x.toSigned(x.bitLength + 1);

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 toSigned method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。