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


Dart int.toSigned用法及代碼示例


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

用法:

int toSigned(
   int width   
)

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

                         //     V--sign bit-V
16.toSigned(5) == -16;   //  00010000 -> 11110000
239.toSigned(5) == 15;   //  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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。