Convertire un carattere maiuscolo in minuscolo senza la funzione LCase()

Da Gambas-it.org - Wikipedia.

Come è noto, per convertire uno o più caratteri alfabetici maiuscoli di una stringa in corrispondenti minuscoli, è sufficiente utilizzare la funzione LCase( ).

Se non si vuole utilizzare detta funzione di Gambas, per effettuare comunque la conversione da maiuscolo in minuscolo è necessario tenere conto che nel codice ASCII i caratteri alfabetici minuscoli hanno un corrispondente codice numerico pari a quello dei caratteri alfabetici maiuscoli + 32.

Così, ad esempio, il carattere della lettera "A" ha un numero di codice ASCII 65; pertanto la relativa lettera minuscola "a" ha un numero uguale a 65 + 32 = 97.

Pertanto, se vogliamo effettuare una conversione in minuscolo di una stringa di caratteri alfabetici, scritti tutti in lettere maiuscole, senza l'uso della funzione nativa di Gambas "LCase()", potremo utilizzare un algoritmo simile al seguente:

Public Sub Main()
 
 Dim s As String
 Dim bb As Byte[]
 Dim b As Byte
 
 s = "ABCDEFGHIJKLMNOPQRSTUVYWZ"
  
 bb = Byte[].FromString(s)
  
 For b = 0 To bb.Max
   bb[b] += 32
 Next
  
 Print bb.ToString(0, bb.Count)
  
End

Va da sé che, avendo per ottenere la conversione da minuscolo in maiuscolo, sarà necessario sottrarre il valore 32 al numero di codice ASCII di un carattere alfabetico.
Esempio: [a]97 - 32 = 65[A]