1.\" 2.\" Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org> 3.\" 4.\" SPDX-License-Identifier: BSD-2-Clause 5.\" 6.Dd November 9, 2025 7.Dt STDC_BIT_WIDTH 3 8.Os 9.Sh NAME 10.Nm stdc_bit_width 11.Nd find the first trailing one in an intege 12.Sh SYNOPSIS 13.Lb libc 14.In stdbit.h 15.Ft unsigned int 16.Fn stdc_bit_width_uc "unsigned char value" 17.Ft unsigned int 18.Fn stdc_bit_width_us "unsigned short value" 19.Ft unsigned int 20.Fn stdc_bit_width_ui "unsigned int value" 21.Ft unsigned int 22.Fn stdc_bit_width_ul "unsigned long value" 23.Ft unsigned int 24.Fn stdc_bit_width_ull "unsigned long long value" 25.Ft unsigned int 26.Fn stdc_bit_width "value" 27.Sh DESCRIPTION 28The 29.Nm stdc_bit_width_ Ns Em type Ns () 30family of functions returns the number of bits needed to represent 31.Fa value , 32where 33.Fa value 34is of type 35.Va unsigned char , 36.Va unsigned short , 37.Va unsigned int , 38.Va unsigned long , 39or 40.Va unsigned long long 41for 42.Em type 43being 44.Sy uc , 45.Sy us , 46.Sy ui , 47.Sy ul , 48or 49.Sy ull 50respectively. 51The 52.Fn stdc_bit_width "value" 53type-generic macro picks the appropriate 54.Nm stdc_bit_width_ Ns Em type Ns () 55function based on the type of 56.Fa value . 57.Pp 58Functions 59.Fn stdc_bit_width_ui , 60.Fn stdc_bit_width_ul , 61and 62.Fn stdc_bit_width_ull 63are identical to 64.Bx 4.3 65functions 66.Xr fls 3 , 67.Xr flsl 3 , 68and 69.Xr flsll 3 70respectively, except for operating on unsigned instead of signed values. 71.Sh RETURN VALUES 72Returns the least number of bits needed to represent 73.Fa value . 74If 75.Fa value 76is zero, the return value is zero. 77Otherwise it is 78.EQ 791 + \(lf log sub 2 italic value \(rf . 80.EN 81.Sh SEE ALSO 82.Xr bit_fls 3 , 83.Xr fls 3 , 84.Xr flsl 3 , 85.Xr flsll 3 , 86.Xr stdbit 3 , 87.Xr stdc_count_leading_zeros 3 , 88.Xr stdc_first_leading_one 3 89.Sh STANDARDS 90The 91.Nm stdc_bit_width_ Ns Em type Ns () 92family of functions and the 93.Fn stdc_bit_width 94type-generic macro conform to 95.St -isoC-2023 . 96.Sh HISTORY 97The 98.Nm stdc_bit_width_ Ns Em type Ns () 99family of functions and the 100.Fn stdc_bit_width 101type-generic macro were added in 102.Fx 15.1. 103.Sh AUTHOR 104.An Robert Clausecker Aq Mt fuz@FreeBSD.org 105