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

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

c語言位運算問題??

c語言位運算問題??

C C# C++
小王同學2015 2016-05-20 13:24:07
1 ?為什么位運算的操作數只能是整型或者字符型數據以及他們的變體呢??2 ?為什么操作數的移位運算并不改變原來操作數的值呢??
查看完整描述

1 回答

已采納
?
asd8532

TA貢獻143條經驗 獲得超187個贊

計算機里的數據都是二進制保存的。無論是float還是double型的,實際保存的時候,都是0和1的組合,都是二進制的。
C語言中整型常量才能進行位運算,這是這個語言所作出的限制,與計算機沒有什么關系。它如果被設計成允許其他類型數據可以進行位運算,也是可以的。只是由于數據保存方式的特殊性,其他類型數據做位運算從可理解性和實現效率方面來說,都有缺點,所以不適合做位運算。


就像有賦值語句 a=2;
然后左移兩位 a<<2;
a還是2
并沒有變成 8

查看完整回答
2 反對 回復 2016-05-20
  • 小王同學2015
    小王同學2015
    只是由于數據保存方式的特殊性,其他類型數據做位運算從可理解性和實現效率方面來說,都有缺點,所以不適合做位運算。 請您再詳細解釋下這句話
  • asd8532
    asd8532
    整形存儲的時候其實本質就是按照二進制存儲的,所以可以直接操作;其他類型的,例如浮點型,用科學計數法存儲,二進制存儲的是有效數字和次方,這樣的按位運算毫無意義??梢钥聪翴EEE754的規格化和非規格化浮點數的表示
  • 1 回答
  • 0 關注
  • 1850 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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