Thursday, November 11, 2010

ತೇಲುವ ಚುಕ್ಕಿ

ತೇಲುವ ಚುಕ್ಕಿಯ ಅಂಕೆ (floating point number) ಅಂದರೆ  ಏನು? ಹಾಗೆ  ಯಾಕೆ ಕರೆಯುತ್ತಾರೆ?
ಅದನ್ನೆಲ್ಲ ಮುಂದಿನ ಬರಹದಲ್ಲಿ ತಿಳಿಸುತ್ತೇನೆ. ಆದರೆ, ಸದ್ಯಕ್ಕೆ ಇಶ್ಟು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಿ. ನನ್ನಿಯಂಕೆ(real number)ಗಳನ್ನು ಎಣಿ(computer)ಯಲ್ಲಿ ಉಳಿಸಿ ಇಟ್ಟುಕೊಳ್ಳುವ ಒಂದು ಮಾರಾಳುತನ (representation) ಇದು. ಗಿರಕು ಚುಕ್ಕಿಯ ಮಾರಾಳುತನ(fixed point representation)ವೂ ಇದೆ. ಆದರೆ ಇದು ಹೆಚ್ಚು ಕಟ್ಟುನಿಟ್ಟಾ(precise)ಗಿದ್ದರೂ ತುಂಬಾ ಎಡೆ(space) ಹಿಡಿಸುತ್ತದೆ. ಹಾಗಾಗಿ ಈ ಮಾರಾಳುತನ(representation)ವನ್ನು ಈಗಿನ ಎಣಿಗಳು ಬಳಸುವುದಿಲ್ಲ. ತೇಲುವ ಚುಕ್ಕಿಯ ಮಾರಾಳುತನವನ್ನೇ ಬಳಸುತ್ತವೆ.

ಸಿ ನುಡಿಯಲ್ಲಿ ಮೂರು ಬಗೆಯ ತೇಲುವ ಚುಕ್ಕಿಯ ಅಂಕೆಗಳು ಇವೆ: float, double, long double. floatಗಿಂತ double ಅಂಕೆಯ ಕಟ್ಟುನಿಟ್ಟುತನ (precision) ಇಮ್ಮಡಿ. ಅದಕ್ಕೂ ಹೆಚ್ಚಿನ ಕಟ್ಟುನಿಟ್ಟುತನ ಅಂದರೆ long doubleದು. ಇವುಗಳ ಹರವು(range) ಎಷ್ಟು, ಮತ್ತು ಕಟ್ಟುನಿಟ್ಟುತನ ಎಷ್ಟು ಅಂತ ಮುಂದೆ ಹೇಳುತ್ತೇನೆ.

ಹಾಗಿದ್ದರೆ ನಮ್ಮ ಹಿಂದಿನ ಹಮ್ಮಿ(program)ನಲ್ಲಿ int ಬದಲಾಗಿ ಈ ಯಾವುದಾದರೂ ತೇಲುವ ಚುಕ್ಕಿಯ ಅಂಕೆಯನ್ನು ಬಳಸಬಹುದು. float ಅನ್ನು ಬಳಸಿ ನೋಡೋಣ.

#include<stdio.h>


main() {
   float km;
   int mile;
   scanf("%d",&mile);
   km = 1.61 * mile;
   printf("%f",km);
}

ಒಟ್ಟಿಸಿ (compile), ಎಸಗಿ(execute) ಪಳಿ(output)ಯನ್ನು ನೋಡೋಣ:

$ ./a.out
2
3.220000

$ ./a.out
5
8.050000

ಉತ್ತರಗಳು ಈಗ ಸರಿಯಾಗಿವೆ!

No comments: