亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

移位操作符(<,>)算術還是邏輯在C中?

移位操作符(<,>)算術還是邏輯在C中?

C C++
jeck貓 2019-07-06 16:02:22
移位操作符(<,>)算術還是邏輯在C中?在C中,換擋操作符(<<, >>算術還是邏輯?
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

左移時,算術和邏輯移位沒有區別。右移時,移位的類型取決于所移動的值的類型。

(對于那些不熟悉這種差異的讀者來說,“邏輯”右移1位會將所有位移到右邊,并用0填充最左邊的位?!八阈g”移位將原始值保留在最左邊的位上。在處理負數時,差異變得很重要。)

當移動一個無符號值時,C中的>操作符是一個邏輯移位。當移動有符號值時,>操作符是算術移位.

例如,假設32位機器:

signed int x1 = 5;assert((x1 >> 1) == 2);signed int x2 = -5;assert((x2 >> 1) == -3);
unsigned int x3 = (unsigned int)-5;assert((x3 >> 1) == 0x7FFFFFFD);


查看完整回答
反對 回復 2019-07-06
  • 3 回答
  • 0 關注
  • 1035 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號