我寫了一個代碼將ip轉換爲十進制,它似乎給出了意想不到的結果,這是因爲從BYTE到DWORD的轉換不匹配。BYTE轉換爲DWORD
有沒有辦法將字節變量轉換爲字,類型轉換似乎不起作用。
下面是代碼
//function to convert ip 2 decimal
DWORD ip2dec(DWORD a ,DWORD b,DWORD c,DWORD d)
{
DWORD dec;
a=a*16777216;
b=b*65536;
c=c*256;
dec=a+b+c+d;
return dec;
}
int main()
{
BYTE a,b,c,d;
/* some operations to split the octets and store them in a,b,c,d */
DWORD res=ip2dec(a,b,c,d);
printf("The converted decimal value = %d",dec);
}
我得到的價值爲-1062731519代替3232235777的部分。
首先發布你的實際代碼,因爲你在這個錯誤,例如什麼是在printf dec?第二你可能想在你的printf中使用「%u」 –