Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,844 questions

51,765 answers

573 users

How to find the position of the first set bit (1-bit) of a number in Pascal

1 Answer

0 votes
program FirstSetBitPosition;

// Function to find the position of the first set bit 
function FindFirstSetBitPosition(num: Integer): Integer;
begin
  { Edge case: If the number is 0, there are no set bits }
  if num = 0 then
    FindFirstSetBitPosition := 0  { Return 0 to indicate no set bit }
  else
    (*
      num AND -num isolates the lowest set bit.
      Ln(...) / Ln(2) gives the zero-based index of that bit.
    *)
    FindFirstSetBitPosition := Trunc(Ln(num AND (-num)) / Ln(2)) + 1;
end;

var
  num: Integer;
  position: Integer;

begin
  num := 4224;  { Binary: 0001 0000 1000 0000 }

  // Find and display the position of the first set bit 
  position := FindFirstSetBitPosition(num);
  if position = 0 then
    writeln('The number has no set bits (it''s 0).')
  else
    writeln('The position of the first set bit is: ', position);
end.




(*
run:

The position of the first set bit is: 7

*)

 



answered Sep 4, 2025 by avibootz
...