Difference between revisions of "LOG"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
imported>Clippy
m
Line 7: Line 7:
  
  
* Value parameter MUST be greater than 0!  
+
* Value parameter MUST be greater than 0! [[ERROR Codes|"Illegal function call" error]] using negative or zero values!
 
* The natural logarithm is the logarithm to the base '''e = 2.718282''' (approximately).
 
* The natural logarithm is the logarithm to the base '''e = 2.718282''' (approximately).
 
* The natural logarithm of ''a'' is defined as the integral from 1 to ''a'' of dx/x.
 
* The natural logarithm of ''a'' is defined as the integral from 1 to ''a'' of dx/x.
Line 16: Line 16:
 
{{CodeStart}}
 
{{CodeStart}}
  
  FUNCTION Log10#(value AS DOUBLE) [[STATIC]]
+
  FUNCTION Log10#(value AS DOUBLE) {{Cl|STATIC}}
 
   Log10# = LOG(value) / LOG(10.#)  
 
   Log10# = LOG(value) / LOG(10.#)  
 
  END FUNCTION
 
  END FUNCTION
Line 22: Line 22:
 
{{CodeEnd}}
 
{{CodeEnd}}
  
:''Explanation:'' The natural logarithm of the value is divided by the base 10 logarithm. The LOG of ten is designated as a DOUBLE precision return by using # after the Log10 value.
+
:''Explanation:'' The natural logarithm of the value is divided by the base 10 logarithm. The LOG of ten is designated as a DOUBLE precision return by using # after the Log10 value. The return tells you the number of times 10 goes into a value.
  
  
Line 28: Line 28:
 
{{CodeStart}}
 
{{CodeStart}}
  
FUNCTION Bin$ (n&)
+
FUNCTION BIN$ (n&)
FOR p% = 0 TO {{Cl|LOG}}(n& + .1) {{Cl|\}} {{Cl|LOG}}(2)           ' added +.1 to get 0 to work
+
  IF n& < 0 THEN EXIT FUNCTION            'positive numbers only! negative error!
  IF n& {{Cl|AND}} 2 ^ p% THEN s$ = "1" + s$ ELSE s$ = "0" + s$
+
  FOR p% = 0 TO INT({{Cl|LOG}}(n& + .1) / {{Cl|LOG}}(2))    ' added +.1 to get 0 to work
NEXT p%
+
    IF n& {{Cl|AND}} 2 ^ p% THEN s$ = "1" + s$ ELSE s$ = "0" + s$ 'find bits on
IF s$ = "" THEN Bin$ = "0" ELSE Bin$ = s$      'zero return?
+
  NEXT p%
 +
  IF s$ = "" THEN BIN$ = "&B0" ELSE BIN$ = "&B" + s$      'check for zero return
 
END FUNCTION
 
END FUNCTION
  
 
{{CodeEnd}}
 
{{CodeEnd}}
: ''Explanation:'' The LOG of the INTEGER value is integer divided by the LOG of 2 to determine the highest valid bit that will be returned. The FOR loop compares the value with the exponents of two and determines if a bit is ON or OFF as "1" or "0".  
+
: ''Explanation:'' The LOG of a '''positive''' [[INTEGER]] value is divided by the LOG of 2 to determine the number of binary digits that will be returned. The FOR loop compares the value with the exponents of two and determines if a bit is ON or OFF as "1" or "0".  
  
  

Revision as of 21:17, 13 July 2010

The LOG math function returns the natural logarithm of a specified numerical value.


Syntax: logarithm = LOG(value)


  • Value parameter MUST be greater than 0! "Illegal function call" error using negative or zero values!
  • The natural logarithm is the logarithm to the base e = 2.718282 (approximately).
  • The natural logarithm of a is defined as the integral from 1 to a of dx/x.
  • Returns are default SINGLE precision unless the value parameter uses DOUBLE precision.


Example 1: FUNCTION to find the base ten logarithm of a numerical value.

FUNCTION Log10#(value AS DOUBLE) STATIC Log10# = LOG(value) / LOG(10.#) END FUNCTION

Explanation: The natural logarithm of the value is divided by the base 10 logarithm. The LOG of ten is designated as a DOUBLE precision return by using # after the Log10 value. The return tells you the number of times 10 goes into a value.


Example 2: A binary FUNCTION to convert INTEGER values using LOG to find the number of digits the return will be.

FUNCTION BIN$ (n&) IF n& < 0 THEN EXIT FUNCTION 'positive numbers only! negative error! FOR p% = 0 TO INT(LOG(n& + .1) / LOG(2)) ' added +.1 to get 0 to work IF n& AND 2 ^ p% THEN s$ = "1" + s$ ELSE s$ = "0" + s$ 'find bits on NEXT p% IF s$ = "" THEN BIN$ = "&B0" ELSE BIN$ = "&B" + s$ 'check for zero return END FUNCTION

Explanation: The LOG of a positive INTEGER value is divided by the LOG of 2 to determine the number of binary digits that will be returned. The FOR loop compares the value with the exponents of two and determines if a bit is ON or OFF as "1" or "0".


See also:

EXP, &B (binary number)




Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page