pub fn signExtend(To: type, n: anytype) To To: typen1872
1873
1874
1875
1876
1877
1878
1879pub fn signExtend(To: type, n: anytype) To {
const From = @TypeOf(n);
if (From == u0) return 0;
const FromSigned = @Int(.signed, @typeInfo(From).int.bits);
const ToSigned = @Int(.signed, @typeInfo(To).int.bits);
return @bitCast(@as(ToSigned, @as(FromSigned, @bitCast(n))));
}
Increases the bit width of an integer by copying the most significant bit. This results in the input and output having the same arithmetic value, when interpreted as two's complement integers.