ホームページ >バックエンド開発 >Golang >ビットシフト演算結​​果の違い

ビットシフト演算結​​果の違い

WBOY
WBOY転載
2024-02-08 21:11:131058ブラウズ

ビットシフト演算結​​果の違い

phpエディタZimoが「ビット単位のシフト計算結果の違い」についての記事をお届けします。コンピューター プログラミングでは、ビット シフト演算は一般的な演算であり、2 進数に対して左または右のシフト演算を実行できます。ただし、プログラミング言語が異なると、ディスプレイスメント操作の結果の処理に違いがある可能性があるため、開発者は注意が必要です。この記事では、さまざまなプログラミング言語でのディスプレイスメント操作の結果の違いを詳細に紹介し、読者がディスプレイスメント操作をより深く理解し、適用できるようにいくつかの例を示します。初心者であっても、プログラミングの基礎を持った開発者であっても、この記事から役立つ知識とスキルを得ることができます。

質問内容

私の go プログラムの出力、特に変数 x1 と x2 に違いがあります。関連するコード スニペットは次のとおりです:

リーリー

期待される出力: 10 10

実際の出力: 0 10

違いの背後にある理由に興味を持ち、説明を求めてください。

解決策

定数式は、指定されていない精度で評価されます。 x2 に割り当てられるものはすべて定数であるため、210 / 100 = 1024 / 100 = 10 が正しく計算されます。一方、最初の式では、1 は byte として扱われます。これは、すぐにシフトアウトされることを意味します。 1 は、仕様: byte

として扱う必要があります。

非 const シフト式の左オペランドが型なし定数の場合、シフト式がその左オペランドのみで置き換えられたときに想定される型にまず暗黙的に変換されます。

1 は左側の型なし定数で、nvar で式を非定数にするため、1 には代入先の x1 型が必要です。 ###バイト###。

以上がビットシフト演算結​​果の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。