C ++符号なし型演算オブジェクトの型変換への参加

  演算子の演算オブジェクトの型に矛盾があり、演算オブジェクトの1つが符号なし型である場合、それに応じてこの型変換を実行する必要があります。型変換の結果については、マシン内の各整数型の相対サイズによって異なります。
  
  演算子の演算オブジェクトタイプが不一致で、演算オブジェクトの1つが署名されていない
  
  場合、次の状況に分類されます。符号なしタイプの演算オブジェクトが、符号付きタイプの演算オブジェクトより大きい場合、署名されます。型が対応する符号なし型に変換された後、操作が実行されます。変換ルールについては、ブログC ++の符号付き型から符号なし型への変換を参照してください。
  
  符号付き型の演算オブジェクトが符号なし型の演算オブジェクトより大きい場合、状況は少し複雑になりますいくつか:
  
  1.マシン内の符号なしタイプの値の範囲が符号付きタイプの値の範囲内にある
  
  場合、操作のために符号なしタイプのオブジェクトを符号付きタイプに変換します; 2.マシンが符号なしの型が表すことができる値の範囲は、この符号付きの型の値の範囲を超えているため、署名された型のオブジェクトは、操作のために符号なしの型に変換する必要があります。
  
  繰り返しになりますが、符号付きの型と符号なしの型を混在させないでください。符号付きの型と符号なしの型を混在させると、結果が期待とは大きく異なる場合が多いためです。

おすすめ

転載: www.cnblogs.com/zhenhua1618/p/12729626.html