i want to understand the following code and how i can use it to my arduino
rs = (5000./g_vol-1.)*10000.;/*Calc Rs*/
rs = (rs/5000.);/*0.1 * 10=1*/ //Calculate Rs/Ro
abc = rs;
g_logalc = log(abc);
g_alcohol = 169*(g_logalc*g_logalc*g_logalc*g_logalc)-
That first part is Math. Presumably it's based on the documentation of the alcohol sensor, and converts the Analog reading into a meaningful number (Blood alcohol PPM, or something.) You can probably leave it as is. It may have some problems because Arduino doesn't have "double" (higher precision math), and it's possible that that precision is needed for the calculations to some out right...
g_dis_buf =g_alcohol/1000%10 + 0x30; // Display the result
g_dis_buf =g_alcohol/100%10 + 0x30;
g_dis_buf =g_alcohol/10%10 + 0x30;
g_dis_buf =g_alcohol %10 + 0x30;
g_dis_buf = '\0';
This part is display code that could be replaced with Serial.print() calls. Or LCD.print() if you end up using an LCD on your Arduino and the standard LCD library.
What you have is 'complete' code for a PIC alcohol analyzer. It initializes and reads the PIC's internal A2D converter (which is replaceable with the arduino core and a call to analogRead()), does some math on it (which you still need), and displays the result on an LCD using relatively bare LCD-writing code (which is replaceable by the Serial or LCD and Print arduino libraries.) So an arduino sketch that does the same thing as this program will be much shorter.
The original code is somewhat interesting as a "bad example" of how to partition code. Ideally there would be "high level" functions that you wouldn't have to change at all. But this is very common in the microcontroller world, and it's partially because the code frequently gets smaller and faster if you don't have a lot of depth in you function call graph...