JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<form class="form-inline">
  <div class="form-group">
    <label for="from">From</label>
    <input type="text" class="form-control" id="from" placeholder="15000">
  </div>
  <div class="form-group">
    <label for="to">To</label>
    <input type="text" class="form-control" id="to" placeholder="20000">
  </div>
  <div class="form-group">
    <label for="width">Width (bits)</label>
    <input type="text" class="form-control" id="width" value="16">
  </div>
  <button type="submit" class="btn btn-default">Calculate</button>
</form>
<div class="panel panel-default">
  <div class="panel-body" id="panel">

  </div>
</div>
<div class="panel panel-default">
  <div class="panel-body" id="panel2">

  </div>
</div>

JavaScript

function print(t) {
  p = $('#panel');
  p.html(p.html() + t + "<br>");
}
function print2(t) {
  p = $('#panel2');
  p.html(p.html() + t + "<br>");
}
function find_lsm(p) {
  m = 1;
  i = 1;
  while (true) {

    if ((p & m) > 0) {
      return [m,i];
    }
    m = m << 1;
    i += 1;
  }

}

$("form").submit(function(event) {
  event.preventDefault();
  fp = parseInt($('#from').val());
  tp = parseInt($('#to').val());
  l = Math.pow(2, $('#width').val()) - 1;
  if (!fp || !tp || fp >= tp) {
    alert("Come on place some values that make sense....")
  } else {
    cp = fp;
    while (true) {
      cm = find_lsm(cp);
      s = cm[1];
      cm = cm[0];
      if (cm >= tp) {
        return;
      }
      e = cp | (cm - 1);
      print("Range " + cp + " - " + e + " mask " + (l & (l << (s-1))).toString(16));
      cp += cm;
    }
  }

});