• Thanks for the question,

    I guess the author goes more this way

    --the smallest exact number integer data type that can't support a negative number

    declare @bit bit

    set @bit = -1

    Command(s) completed successfully.

    declare @tinyint tinyint

    set @tinyint = -1

    Msg 220, Level 16, State 2, Line 5

    Arithmetic overflow error for data type tinyint, value = -1.

    so certainly bit datatype can get a negative value which will be transformed to 0 or 1.