我正在NetBeans IDE中使用C應用程序,應用程序基本上是客戶端 - 服務器模型。我根據來自客戶端的數據計算一些值,但在特定情況下,值計算失敗。而不是返回值65536的我得到的價值爲256某些語句在特定情況下在C程序中被跳過
以下是案例:
int pckt_number = 0; //size of int is 4 bytes.
pckt_number = 0 << 8 ; // 1
pckt_number |= 1 << 8; //2
pckt_number |= 0 << 8 ; //3
pckt_number |= 0; //4
這裏既有第三和第四語句是執行跳過,返回值是256,而不是65536.對於其餘的案例,從1到65535計算正確的值。請注意int是4個字節。
該代碼將導致256不是65536。你爲什麼想到65536 – 4386427