User Tools

Site Tools


number_20conversion_20in_20basic

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
number_20conversion_20in_20basic [2018/04/17 17:51] – Added syntax highlighting tbest3112number_20conversion_20in_20basic [2024/01/05 00:21] (current) – external edit 127.0.0.1
Line 1: Line 1:
 =====Number Conversion in BASIC===== =====Number Conversion in BASIC=====
  
-//by Jonathan Harston and Richard Russell, December 2007//\\ \\  The following short functions perform conversion of unsigned 32-bit integers to fixed-length strings, in hexadecimal (base 16), octal (base 8) and binary (base 2).\\ \\ +//by Jonathan Harston and Richard Russell, December 2007// 
 + 
 +The following short functions perform conversion of unsigned 32-bit integers to fixed-length strings, in hexadecimal (base 16), octal (base 8) and binary (base 2). 
 ===== Hexadecimal Output ===== ===== Hexadecimal Output =====
 <code bb4w> <code bb4w>
Line 12: Line 15:
   REPEAT A$=STR$~(A% AND 15)+A$:A%=A% >>> 4:UNTIL A%=0:=RIGHT$(STRING$(N%," ")+A$,N%)   REPEAT A$=STR$~(A% AND 15)+A$:A%=A% >>> 4:UNTIL A%=0:=RIGHT$(STRING$(N%," ")+A$,N%)
 </code> </code>
-**FNh0()** converts the supplied number to a fixed width hexadecimal string padded with zeros, **FNh()** converts the supplied number to a fixed width hexadecimal string padded with spaces. For example, **FNh0(10,6)** returns **00000A**.\\ \\ + 
 +**FNh0()** converts the supplied number to a fixed width hexadecimal string padded with zeros, **FNh()** converts the supplied number to a fixed width hexadecimal string padded with spaces. For example, **FNh0(10,6)** returns **00000A**. 
 ===== Octal Output ===== ===== Octal Output =====
 <code bb4w> <code bb4w>
Line 23: Line 28:
   REPEAT A$=STR$(A% AND 7)+A$:A%=A% >>> 3:UNTIL A%=0:=RIGHT$(STRING$(N%," ")+A$,N%)   REPEAT A$=STR$(A% AND 7)+A$:A%=A% >>> 3:UNTIL A%=0:=RIGHT$(STRING$(N%," ")+A$,N%)
 </code> </code>
-**FNo0()** converts the supplied number to a fixed width octal string padded with zeros, **FNo()** converts the supplied number to a fixed width octal string padded with spaces. For example, **FNo0(10,6)** returns **000012**.\\ \\ + 
 +**FNo0()** converts the supplied number to a fixed width octal string padded with zeros, **FNo()** converts the supplied number to a fixed width octal string padded with spaces. For example, **FNo0(10,6)** returns **000012**. 
 ===== Binary Output ===== ===== Binary Output =====
 <code bb4w> <code bb4w>
Line 34: Line 41:
   REPEAT A$=STR$(A% AND 1)+A$:A%=A% >>> 1:UNTIL A%=0:=RIGHT$(STRING$(N%," ")+A$,N%)   REPEAT A$=STR$(A% AND 1)+A$:A%=A% >>> 1:UNTIL A%=0:=RIGHT$(STRING$(N%," ")+A$,N%)
 </code> </code>
-**FNb0()** converts the supplied number to a fixed width binary string padded with zeros, **FNb()** converts the supplied number to a fixed width binary string padded with spaces. For example, **FNb0(10,6)** returns **001010**.\\ \\ + 
 +**FNb0()** converts the supplied number to a fixed width binary string padded with zeros, **FNb()** converts the supplied number to a fixed width binary string padded with spaces. For example, **FNb0(10,6)** returns **001010**. 
 ===== Decimal Output ===== ===== Decimal Output =====
- For converting numbers to decimal strings refer to the **FNUSING** library supplied with //BBC BASIC for Windows// and documented [[http://www.bbcbasic.co.uk/bbcwin/manual/bbcwing.html#using|here]].\\ \\ + For converting numbers to decimal strings refer to the **FNUSING** library supplied with //BBC BASIC for Windows// and documented [[http://www.bbcbasic.co.uk/bbcwin/manual/bbcwing.html#using|here]]. 
 ===== Note ===== ===== Note =====
- These functions are deliberately written in the same style to show their similarities. Fixed-length hexadecimal and fixed-length decimal can be performed with the following shorter functions.\\ + These functions are deliberately written in the same style to show their similarities. Fixed-length hexadecimal and fixed-length decimal can be performed with the following shorter functions. 
 <code bb4w> <code bb4w>
   DEF FNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%) :REM Hex padded with zeros   DEF FNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%) :REM Hex padded with zeros
Line 45: Line 56:
   DEF FNd(A%,N%)=RIGHT$("         "+STR$A%,N%) :REM Decimal padded with spaces   DEF FNd(A%,N%)=RIGHT$("         "+STR$A%,N%) :REM Decimal padded with spaces
 </code> </code>
 +
 Additionally, these functions are tailored for //BBC BASIC for Windows// (and BASIC V on other platforms). They will not work on other versions of BBC BASIC. If you need code to work on other versions of BBC BASIC or need code that is version/platform neutral, see other appropriate references, such as the [[http://beebwiki.jonripley.com|BBC Micro Wiki]]. Additionally, these functions are tailored for //BBC BASIC for Windows// (and BASIC V on other platforms). They will not work on other versions of BBC BASIC. If you need code to work on other versions of BBC BASIC or need code that is version/platform neutral, see other appropriate references, such as the [[http://beebwiki.jonripley.com|BBC Micro Wiki]].
number_20conversion_20in_20basic.1523987474.txt.gz · Last modified: 2024/01/05 00:17 (external edit)