link もっと前
   2003年 11月 6日 -
      2003年 11月 6日  
link もっと後

link 未来から過去へ表示(*)
link 過去から未来へ表示

日々

link permalink

プログラム小話〜意外な落とし穴、演算子の優先順位。
言語を学ぶにあたり演算子の優先順位が必ず出てくると思います。* が + より優先なのは数式でお馴染みですが、<<(左シフト演算子)や >>(右シフト演算子)などは優先順位を忘れがちです。

high を 8ビット左シフトし low を加えた値を求めたいのですが…


//8ビットの数値を合成し 16ビットの数値に
value = high << 8 + low;

上のように書くとはまります。+ 演算子の方が優先であるため、実際は以下のように解釈されます。


//8ビットの数値を合成し 16ビットの数値に
value = high << (8 + low);

当然 value は予期しない値になりますからプログラムは動きません。にしてもコンパイラも黙々とコンパイルしないで、そんなに左シフトしても仕方ないでしょうよ、と言ってくれて構わないと思いますが、g++ 2.96 は何も言ってくれません(ちなみに VC++ 6.0 だと warning C4554 が出ます)。
以上、気づくまで 20分強かかりました。この程度か?情報 3年なのに_| ̄|○|||

[編集者: すずき]
[更新: 2014年 9月 10日 11:18]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2003年 11月 6日 -
      2003年 11月 6日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 1/13 01:00

カレンダー

<2003>
<<<11>>>
------1
2345678
9101112131415
16171819202122
23242526272829
30------

最近のコメント 5件

  • link 19年09月01日
    すずき 「私も正直びっくりです。間違って違う製品を...」
    (更新:09/04 23:39)
  • link 19年09月01日
    hdk 「車向けの製品の中でも、車載コンピューター...」
    (更新:09/02 23:20)
  • link 19年07月18日
    hdk 「あっ、AAMはマニュアルのオペレーション...」
    (更新:07/25 00:02)
  • link 19年07月18日
    すずき 「AAM(ASCII Adjust AX ...」
    (更新:07/24 22:22)
  • link 19年07月18日
    hdk 「加算減算は符号のありなしどちらも命令が同...」
    (更新:07/24 07:25)

最近の記事 3件

link もっとみる
  • link 20年01月12日
    すずき 「[ぼくの考えた最強の memset] NEON intrinsic...」
    (更新:01/13 01:00)
  • link 20年01月11日
    すずき 「[memset に一番効く最適化] Cortex-A72 での m...」
    (更新:01/13 00:42)
  • link 20年01月06日
    すずき 「[memset のベンチマーク(AArch64, Cortex] ...」
    (更新:01/12 02:34)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報