弱弱的問個問題,unsigned char的資料左移八位是不是等於0比如說a,b是 unsigned char的,c是unsigned int的,c=(a<<8)+b;a會不會因為只有8位左移八位後就變成0了?
答:1.unsigned char的資料左移八位,那麼低八位會變成02.c=(a<<8)+b;因為左邊c是unsigned int型別,c語言會進行強制型別轉換,把(a<<8)和b當作unsigned int資料型別,這樣,如果a=1,那麼c將等於c=(1<<8)+b=256+b這個問題的關鍵點在於c語言在計算的時候會進行強制型別轉換,=右邊的資料型別都會被強制轉換成=左邊的資料型別。換個問題,如果是b=(a<<8),那麼無論我們將會得的b=0希望回答能對於你學習c語言有幫助。
c語言提供了一組位移運算,以便向左或向右移動位。乙個是左移位運算x還有乙個相應的右移位運算x>>k,但是它的行為就有一點微妙了。一般而言機器支援兩種右移位運算:一是算術位移,
另外乙個是邏輯位運算。邏輯位運算就是左邊補k個0,而算術位運算則是左邊補k個最高有效位的值。這種做法看上去可能有點奇特,但是我們會發現它對有符號整數資料的運算非常有用。c語言中沒有明確的定義用哪種型別位移。對於無符號的必須是邏輯位移。對於有符號的資料兩種型別都可以。不幸的是這樣不確定行就對程式的移植帶來麻煩。一般來說機器都是算術位移,並且許多程式設計師也是假設機器是這樣執行的。
CUDA學習(六十二)
流 裝置執行時可以使用有名和無名 null 流。命名流可以被執行緒塊內的任何執行緒使用,但是流控制代碼可能不會被傳遞給其他塊或子 父核心。換句話說,乙個流應該被視為對它建立的塊是私有的。流控制代碼不保證在塊之間是唯一的,因此在未分配塊的塊中使用流控制代碼將導致未定義的行為。與主機端啟動類似,啟動到不...
愛情六十二課,給默契留點時間
你什麼意思啊?你跟我說清楚,你到底是什麼意思啊 女友追問這句話已經乙個多小時了,宇翔煩感糾結,低頭不語 在街上常常能看見這樣吵架的情侶,一方拽著另一方責問 你什麼意思啊?ta什麼意思,你難道不知道嗎?愛人是那麼親近的另乙個人,他們更像一本塵封的書,需要去讀,而不是問。我們對彼此的了解,淺層的是對話,...
德魯克日誌讀後感之六十二
quote b 三月五日 未來的管理 未來事件,是徒勞無功的。b 要了解未來的出發點,就需要將下面兩種不同,但又具有互補性的方法運用到實踐中 list 經濟的非連續性與社會發展之間存在著 時間斷層 它影響著各個方面,找出來並利用它。人們也稱這一方法為 對已經發生的未來的預期 找到一種能影響未來的新的...