Hello, I am trying to do Shift Cypher in the exercise at the bottom of the page *here* Practice JavaScript Syntax: Classes | Codecademy

My only question for this is, in the solution, how did they come up with these numbers (90,65,122,97) in the *for loops* ? I tried looking at the link provided for unicodes and am unable to find info leading me to the answer there.

here is the code in question, followed by the full code:

```
// encrypt for loop
if (charNum <= 90 && charNum >= 65) {
charNum += this.shift;
if (charNum > 90)
// decrypt for loop
if (charNum <= 122 && charNum >= 97) {
charNum -= this.shift;
if (charNum > 97)
```

```
// Full Code
class ShiftCipher {
constructor(shift){
this.shift = shift;
}
encrypt(plainString) {
let encryptString = '';
const tempString = plainString.toUpperCase();
for (let i=0; i < tempString.length; i++) {
let charNum = tempString.charCodeAt(i);
if (charNum <= 90 && charNum >= 65) {
charNum += this.shift;
if (charNum > 90) {
charNum -= 26;
}
}
encryptString += String.fromCharCode(charNum);
}
return encryptString;
}
decrypt(encryptString){
let decryptString = ''
const tempStr = encryptString.toLowerCase();
for (let i = 0; i < tempStr.length; i++){
const charNum = tempStr.charCodeAt(i);
if (charNum <= 122 && charNum >= 97) {
charNum -= this.shift;
if (charNum > 97) {
charNum += 26;
}
}
}
}
}
const cipher = new ShiftCipher(2);
cipher.encrypt('I love to code!');
```