Zig 0.17.0-dev (Split by item)

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 library itself.

signExtend

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.

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

File

lib/std/math.zig:1871

Code

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))));
}