この技法の問題は、error や deltaerr が分数であるためコンピュータでは計算が遅くなる点であり、さらに浮動小数点数を使った場合は加算によって誤差が蓄積していく点である。整数のみを使った方が高速化され正確になる。そこで上の例で分数または小数になっている全ての数（定数0.5も含む）に deltax をかけて整数にするという技法を使う。ただしそうするとメインループ内で除算が必要になる。そのため error の初期値を変更し、初期値を0として0.5を越えるまでカウントアップするのではなく、初期値を0.5（に deltax をかけた値）にし、0になるまでカウントダウンするように変更する。新たなプログラムの擬似コードは次のようになる。 function line(x0, y0, x1, y1)     boolean steep := abs(y1 - y0) > abs(x1 - x0)     if steep then         swap(x0, y0)         swap(x1, y1)     if x0 > x1 then         swap(x0, x1)         swap(y0, y1)     int deltax := x1 - x0     int deltay := abs(y1 - y0)     int error := deltax / 2     int ystep     int y := y0     if y0 < y1 then ystep := 1 else ystep := -1     for x from x0 to x1         if steep then plot(y,x) else plot(x,y)         error := error - deltay         if error < 0 then             y := y + ystep             error := error + deltaxなお、このプログラムは (x0, y0) と (x1, y1) の位置関係がどうであっても描画できるようにしているが、基本形と逆転していると描画順序が反転する。破線を描く場合など描画順序が重要な場合、2つめのswapを排除して次のように簡略化する必要がある。function line(x0, y0, x1, y1)     boolean steep := abs(y1 - y0) > abs(x1 - x0)     if steep then         swap(x0, y0)         swap(x1, y1)     int deltax := abs(x1 - x0)     int deltay := abs(y1 - y0)     int error := deltax / 2     int ystep     int y := y0       int inc // 追加     if x0 < x1 then inc := 1 else inc := -1 // 追加      if y0 < y1 then ystep := 1 else ystep := -1     for x from x0 to x1 with increment inc // 修正         if steep then plot(y,x) else plot(x,y)         // increment により描画順序が制御される         error := error - deltay         if error < 0 then             y := y + ystep             error := error + deltax
1962年、IBMのジャック・ブレゼンハムが開発した。2001年、ブレゼンハムは次のように記している。当時私はサンノゼのIBMの開発研究室で働いていた。Calcomp製プロッター (Calcomp plotter)  が1407タイプライター型コンソール経由で IBM 1401 に接続されていた。このアルゴリズムは1962年夏には使われており、開発したのは1カ月ほど前だったかもしれない。当時プログラムは無償で交換されるものだったので、Calcomp（Jim Newland と Calvin Hefte）もそのコピーを持っていた。1962年秋、私がスタンフォードに戻ったときもコピーをスタンフォードの計算センターのライブラリに入れた。この直線描画ルーチンについて、1963年コロラド州デンバーで開催されたACM全国大会で発表した。ただし、その年は発表内容が出版されることはなく、単に日程表などに私の発表の題名が掲載されただけだった。その後IBMの Systems Journal が発表した論文を掲載したいと申し出てきたので、よろこんで提供し、1965年に出版された。ブレゼンハムのアルゴリズムは後に修正を加えられ、円を描画するアルゴリズムにもなっている。こちらのアルゴリズムは midpoint circle algorithm などと呼ばれている。
幼稚園時代に、父親に買ってもらったボードゲームセットに将棋が含まれていたことが、将棋を覚えたきっかけである。2005年4月、6級で奨励会に入会。以後順調に昇級・昇段を続け、2010年1月に三段に昇段し、2010年度前期（第47回）より三段リーグに参加。2期目となる2010年度後期（第48回）は自身が連勝し、門倉啓太及び阿部光瑠が揃って連勝しなければ四段昇段が見込める状態で最終日を迎えたが、自身が連敗したため四段昇段はならなかった。3期目となる2011年度前期（第49回）で、前半9局を8勝1敗でトップ独走の状態から逃げ切り、最終的に13勝5敗・1位の成績を修め、四段昇段（プロ入り）。この間、第1回加古川青流戦に奨励会三段として参加し、2回戦で田中悠一、3回戦で西川和宏（いずれもプロ四段）に勝利し、ベスト8に進出した。（準々決勝では船江恒平四段に敗れる。）プロ入り以降、2018年度終了現在まで、順位戦における昇級歴は無いものの、竜王戦においては6組に在籍していた2013年度（第26期）ランキング戦を4回戦で敗北後、昇級者決定戦を勝ち抜き5組昇級。続く2014年度（第27期）ではランキング戦を勝ち続け、準決勝の村田顕弘戦（2014年5月23日）に勝利した時点で4組昇級を決定、同時に竜王戦の昇段規定に基づき五段に昇段。当期竜王戦では決勝の菅井竜也戦（2014年5月26日）にも勝ち、初のタイトル戦本戦出場を決めた。テレビ棋戦においても、2013年度（第63回）NHK杯の予選を通過し、本戦出場。同棋戦では2016年度（第66回）でも予選を通過し、再度の本戦出場。1回戦でA級八段の稲葉陽に勝ち、棋士人生6年目で初めてA級在位中の棋士からの白星を挙げると同時に、全棋士出場棋戦の本戦において初白星。2013-2014年度（第22期）銀河戦でもブロック内で最多連勝（3連勝）を記録し、決勝トーナメントに出場。第3期（2018年度）叡王戦本戦で豊島将之、渡辺明、丸山忠久を破り、決勝七番勝負に進出。叡王戦は第3期からタイトル戦に昇格したため、決勝戦進出がタイトル挑戦に準じる扱いとされ、六段に昇段した。対戦相手の金井恒太は、高見と同じくタイトル初挑戦であった。高見は決勝七番勝負を4連勝で制して初代叡王に輝き、昇段規定「タイトル1期」を満たして七段に昇段した。なお、順位戦C級2組在籍者のタイトル獲得は、1992年（第33期）王位戦の郷田真隆以来、高見が2人目となった。第4期（2019年度）叡王戦は永瀬拓矢の挑戦を受け、0勝4敗のストレート負けでタイトルを失冠した。