Zig 0.17.0-dev (Split by item)

Shortcut keys
?
Show these tips
S
Focus search field
Esc
Clear focus & close tips
U
Jump to source code
↑
Move up in search results
↓
Move down in search results
↵
Go to active search result
This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig standard library. Public Function

signExtend

Public Function
std.math.signExtend
pub fn signExtend(To: type, n: anytype) To

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.

Params

  • To: type
  • n

File

math.zig:1872
1872
1873
1874
1875
1876
1877
1878
1879
pub 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))));
}