試しに処理の要旨をコメント化してみた
バイナリーサーチのプログラムをコピーしてコメント追加
短い二分探索のコードだけど徹底的に仕様なり要旨なりを残さないと何をやっているのか見失う
テキトーな英語をgoogle翻訳で推敲(意味が伝わるか不明)
バグはご容赦
C++
// Binary search returns key position or key addition position
// key is found, return position
// not found, returns insertion position
// if found, return is 0..len-1
// if not found, return is -1..-len
// illegal call for array size 0 is return -1
// if position < 0, insert position is (abs (insertpos) -1)

int bsf(int v,int *t,int len){
  // ガード、要素数0で呼び出された時の切り分け
  if (len < 1) return -1;

  int right(len), left(-1), vval(v);// ON register?
  while((right - left) > 1){//最小時要素数1、(1 - (-1)) > 1状態になる
    int mid = right - (right - left)/2;//要素数1でmid = 0
    int cval(t[mid]); // ON register?

    if (cval >= vval){
      if (cval == vval) return mid;
      right = mid;
    } else left = mid;
  }
  return -(right +1);
}