LOG: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
m (Removed protection from "LOG")
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 17: Line 17:
{{CodeStart}}
{{CodeStart}}
  FUNCTION Log10#(value AS DOUBLE) {{Cl|STATIC}}
  FUNCTION Log10#(value AS DOUBLE) {{Cl|STATIC}}
   Log10# = LOG(value) / LOG(10.#)  
   Log10# = LOG(value) / LOG(10.#)
  END FUNCTION '' ''
  END FUNCTION
{{CodeEnd}}
{{CodeEnd}}


Line 25: Line 25:


''Example 2:'' A binary FUNCTION to convert [[INTEGER]] values using LOG to find the number of digits the return will be.
''Example 2:'' A binary FUNCTION to convert [[INTEGER]] values using LOG to find the number of digits the return will be.
{{CodeStart}} '' ''
{{CodeStart}}
FUNCTION BIN$ (n&)
FUNCTION BinStr$ (n&)
   IF n& < 0 THEN EXIT FUNCTION            'positive numbers only! negative error!
   IF n& < 0 THEN EXIT FUNCTION            'positive numbers only! negative error!
   FOR p% = 0 TO INT({{Cl|LOG}}(n& + .1) / {{Cl|LOG}}(2))    ' added +.1 to get 0 to work
   FOR p% = 0 TO INT({{Cl|LOG}}(n& + .1) / {{Cl|LOG}}(2))    ' added +.1 to get 0 to work
     IF n& {{Cl|AND}} 2 ^ p% THEN s$ = "1" + s$ ELSE s$ = "0" + s$  'find bits on
     IF n& {{Cl|AND}} 2 ^ p% THEN s$ = "1" + s$ ELSE s$ = "0" + s$  'find bits on
   NEXT p%
   NEXT p%
   IF s$ = "" THEN BIN$ = "&B0" ELSE BIN$ = "&B" + s$      'check for zero return
   IF s$ = "" THEN BinStr$ = "&B0" ELSE BinStr$ = "&B" + s$      'check for zero return
END FUNCTION
END FUNCTION


{{CodeEnd}}
{{CodeEnd}}
: ''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".  
: ''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".




{{PageSeeAlso}}
{{PageSeeAlso}}
* [https://qb64phoenix.com/forum/showthread.php?tid=1114 Featured in our "Keyword of the Day" series]
*[[EXP]], [[&B]] (binary number)
*[[EXP]], [[&B]] (binary number)
*[[Mathematical Operations#Derived Mathematical Functions|Derived Trigonometric Functions]]
*[[Mathematical Operations#Derived_Mathematical_Functions|Derived Mathematical Functions]]




{{PageNavigation}}
{{PageNavigation}}

Latest revision as of 19:58, 24 May 2024

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


Syntax

logarithm! = LOG(value)


Description

  • value MUST be greater than 0. "Illegal function call" error occurs if negative or zero values are used.
  • 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.


Examples

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 BinStr$ (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 BinStr$ = "&B0" ELSE BinStr$ = "&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



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link