日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

程序员面试宝典。。。突破心理防线

發布時間:2024/1/18 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 程序员面试宝典。。。突破心理防线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天偶然看見有朋友書架上有一本程序員面試寶典,前四章非技術,沒仔細看。從第五章開始。習題的確是摳得很細但不小的內容。第5.4節是類型轉換,這里考的是類型提升type promotion。題目如下:

#include <iostream>

using namespace std;

int main()

{

unsigned char a=0xA5;

unsigned char b=~a>>4;

printf("b=%d/n", a);

return 0;

}

作者給出的結果是對的,不過解釋錯誤。“對于第二個問題:因為“>>”的優先級高于“~”,這個解釋別開生面,突破了心理防線。我記得~優先級高于>>,google一下,確認了自己沒錯。于是作者后面的解釋就是穿鑿附會了。網上沒有人解釋這本書的這個問題,我就來試試吧。

如果 >> 高于 ~,那么 ~x>>1 恒等于 ~(x>>1)

敲如下代碼就知道了

#include<stdio.h>

int main()
{
?unsigned int x = 0x80000000;
?unsigned int y = ~x>>1;
?unsigned int z = ~(x>>1);
?printf("%X =?= %X/n", y, z);
}

?

正確的解釋如下:

對于語句 unsigned char b = ~a>>4;

~a???????? :類型unsigned char =提升=>?類型int ,值0xA5 =not操作=> 值0xFF FF FF 5A???

~a>>4? :值0xFF FF FF 5A?????=sar操作=>?值0xFF FF FF F5?????? (因為int,所以sar操作;若其類型為unsigned int,則shr操作)

對b賦值 :截斷0xFF FF FF F5為0xF5,即245。

?

?

?

另發現編譯原理龍書第一版的前端講得比較好;第二版的后端講得比較好。結合起來看更受益。

?

總結

以上是生活随笔為你收集整理的程序员面试宝典。。。突破心理防线的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。