同時に複数のInputが入っていることも想定し、若いInput入力でbreak;をせず全Inputの状態を取得したいです。
 
現状上位桁が0の時、取り逃してしまいますね。
Input1が入っていることを条件にInput3はアクション可能というような使い方も想定しています。
 
enumを使うと判定をわかりやすく書けます(.NET Frameworkの場合は、HasFlagは遅いで有名なので注意してください) 
FlagsAttribute クラス (System) | Microsoft Learn  
Enum.HasFlag(Enum) メソッド (System) | Microsoft Learn 
ふと。もっと良い書き方、例えば配列を使ったりする方法もあるのではないか?と思った次第です
 
例えばbinaryStr[i]のようにインデクサをお使いなので、配列を使っているのとほぼ同じことかと思います。 
イヤなのはその後の、if羅列のほうですよね。
iやcountを使って処理を共通化できるなら、if羅列を消すことができるでしょう。
 
前回の質問の続きでしょうから寄せました。 
WindowsフォームアプリケーションにてDllを使いたい 
cs
1 using   System ; 
 2 using   System . Diagnostics ; 
 3 using   System . Drawing ; 
 4 using   System . Linq ; 
 5 using   System . Windows . Forms ; 
 6 
7 namespace   Qvcazys1ngsxj93 
 8 { 
 9      public   partial   class   Form1   :   Form 
 10      { 
 11          private   DataGridView  dataGridView1 ; 
 12          private   Timer  timer1 ; 
 13          private   object  handle ; 
 14 
15          public   Form1 ( ) 
 16          { 
 17              InitializeComponent ( ) ; 
 18 
19             dataGridView1  =   new   DataGridView 
 20              { 
 21                 AutoSizeColumnsMode  =  DataGridViewAutoSizeColumnsMode . Fill , 
 22                 Dock  =  DockStyle . Fill , 
 23                 Parent  =   this , 
 24              } ; 
 25 
26             dataGridView1 . Columns . Add ( new   DataGridViewTextBoxColumn   {  HeaderText  =   "Board" ,   } ) ; 
 27 
28              for   ( int  i  =   1 ;  i  <=   8 ;  i ++ ) 
 29                 dataGridView1 . Columns . Add ( new   DataGridViewTextBoxColumn   {  HeaderText  =   $"in  { i } " ,   } ) ; 
 30 
31             dataGridView1 . Rows . Add ( "hoge" ) ; 
 32             dataGridView1 . Rows . Add ( "fuga" ) ; 
 33             dataGridView1 . Rows . Add ( "piyo" ) ; 
 34 
35 
36             timer1  =   new   Timer   {  Interval  =   1000 ,   } ; 
 37             timer1 . Tick  +=  Timer1_Tick ; 
 38             timer1 . Start ( ) ; 
 39          } 
 40 
41          private   void   Timer1_Tick ( object  sender ,   EventArgs  e ) 
 42          { 
 43              int  xInput  =  Top16 . GetInputs ( handle ) ; 
 44 
45              // 0埋めで8桁取得(上位桁の0を取り逃さないように) 
 46              string  binaryStr  =  Convert . ToString ( xInput ,   2 ) . PadLeft ( 8 ,   '0' ) ; 
 47 
48              // 確認用(出力ウィンドウ) 
 49             Debug . Write ( $"\n { binaryStr } " ) ; 
 50             Debug . Write ( $" →逆順  { string . Join ( "" ,  binaryStr . Reverse ( ) ) } " ) ; 
 51             Debug . WriteLine ( $" →反転  { string . Join ( "" ,  binaryStr . Reverse ( ) . Select ( x  =>  x  ==   '0'   ?   '1'   :   '0' ) ) } " ) ; 
 52 
53 
54              // hoge行の処理 
 55              int  count  =   0 ; 
 56              foreach   ( char  inputBinaryNum  in  binaryStr . Reverse ( ) )   // 右が1なのでひっくり返す 
 57              { 
 58                 count ++ ; 
 59                  if   ( inputBinaryNum  ==   '0' )   // 0だったら入力有 
 60                  { 
 61                     Debug . Write ( $"Input { count } , " ) ; 
 62                     dataGridView1 . Rows [ 0 ] . Cells [ count ] . Style . BackColor  =  Color . Blue ; 
 63                  } 
 64                  else 
 65                  { 
 66                     dataGridView1 . Rows [ 0 ] . Cells [ count ] . Style . BackColor  =  Color . White ; 
 67                  } 
 68              } 
 69             Debug . WriteLine ( "" ) ; 
 70 
71 
72              // fuga行の処理 
 73              Flag  flag  =   ( Flag ) ~ xInput ;   // 各ビット反転してenumにキャスト 
 74             Debug . WriteLine ( flag ) ; 
 75 
76              var  row1  =  dataGridView1 . Rows [ 1 ] ; 
 77 
78              // ループにしずらいのでこういうのは向かないかなw 
 79              if   ( flag . HasFlag ( Flag . Input1 ) )  row1 . Cells [ 1 ] . Style . BackColor  =  Color . Blue ; 
 80              else  row1 . Cells [ 1 ] . Style . BackColor  =  Color . White ; 
 81              // 以下同じ意味 
 82             row1 . Cells [ 2 ] . Style . BackColor  =  flag . HasFlag ( Flag . Input2 )   ?  Color . Blue  :  Color . White ; 
 83             row1 . Cells [ 3 ] . Style . BackColor  =  flag . HasFlag ( Flag . Input3 )   ?  Color . Blue  :  Color . White ; 
 84             row1 . Cells [ 4 ] . Style . BackColor  =  flag . HasFlag ( Flag . Input4 )   ?  Color . Blue  :  Color . White ; 
 85             row1 . Cells [ 5 ] . Style . BackColor  =  flag . HasFlag ( Flag . Input5 )   ?  Color . Blue  :  Color . White ; 
 86             row1 . Cells [ 6 ] . Style . BackColor  =  flag . HasFlag ( Flag . Input6 )   ?  Color . Blue  :  Color . White ; 
 87             row1 . Cells [ 7 ] . Style . BackColor  =  flag . HasFlag ( Flag . Input7 )   ?  Color . Blue  :  Color . White ; 
 88             row1 . Cells [ 8 ] . Style . BackColor  =  flag . HasFlag ( Flag . Input8 )   ?  Color . Blue  :  Color . White ; 
 89 
90 
91              // 複数条件はわかりやすい 
 92              //if (flag.HasFlag(Flag.Input1) && flag.HasFlag(Flag.Input3)) row.Cells[3].Style.BackColor = Color.Red; 
 93              // ↑↓意味は同じ 
 94              if   ( flag . HasFlag ( Flag . Input1  |  Flag . Input3 ) )  row1 . Cells [ 3 ] . Style . BackColor  =  Color . Red ; 
 95 
96              // 意味のある名前を付けたければこうでもいい 
 97              //if (flag.HasFlag(Flag.Input1_and_3)) row.Cells[3].Style.BackColor = Color.Red; 
 98 
99 
100              
 101              //var row2 = dataGridView1.Rows[2]; 
 102 
103              //for (var i = 1; i <= 8; i++) 
 104              //{ 
 105              //    row2.Cells[i].Style.BackColor = Color.White; 
 106 
107              //    // インデックス(C# 8.0以上) 
 108              //    // [インデックス/範囲処理 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C](https://ufcpp.net/study/csharp/data/dataranges/) 
 109              //    if (binaryStr[^i] == '0') row2.Cells[i].Style.BackColor = Color.Blue; 
 110              //} 
 111 
112              
 113              
 114              //row2.Cells[3].Style.BackColor = binaryStr switch 
 115              //{ 
 116              //    // Input1・Input3の入力があり、Input8の入力がなければ。。。 
 117              //    ['1', .., '0', _, '0'] => Color.Green, 
 118 
119              //    // Input1・Input3(・Input8)の入力があれば。。。 
 120              //    // ↑に当てはまらない時なのでここに入るのはInput8もONなことになる 
 121              //    [.., '0', _, '0'] => Color.Red, 
 122 
123              //    [.., '0', _, _] => Color.Blue, // Input3の入力があれば。。。 
 124 
125              //    _ => Color.White, // default 
 126              //}; 
 127 
128              
 129              
 130              
 131          } 
 132 
133          [ Flags ] 
 134          enum   Flag   :   byte 
 135          { 
 136             None  =   0 , 
 137             Input1  =   1 , 
 138              //Input1 = 0b0000_0001, // こうのほうがわかりやすければそれでもいい 
 139              //Input1 = 0b1111_1110, // こうはダメ! 
 140             Input2  =   2 , 
 141             Input3  =   4 , 
 142             Input4  =   8 , 
 143             Input5  =   16 , 
 144             Input6  =   32 , 
 145             Input7  =   64 , 
 146             Input8  =   128 , 
 147 
148             Input1_and_3  =  Input1  |  Input3 ,   // 複数条件に意味のある名前を付けたければ 
 149          } 
 150 
151          private   class   Top16   // 雑いw 
 152          { 
 153              private   static   Random  random  =   new   Random ( ) ; 
 154              public   static   int   GetInputs ( object  handle )   =>  random . Next ( 256 ) ; 
 155          } 
 156      } 
 157 }