第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

需要?jiǎng)P撒密碼中的代碼解釋

需要?jiǎng)P撒密碼中的代碼解釋

萬(wàn)千封印 2023-10-13 16:47:46
嘿,最近我的任務(wù)是創(chuàng)建一個(gè)應(yīng)用程序,該應(yīng)用程序讀取消息并使用 Java 中的凱撒密碼對(duì)其進(jìn)行加密。直到我遇到添加數(shù)字密碼會(huì)將字母 az/AZ 轉(zhuǎn)換為特殊符號(hào)的部分時(shí),我才真正遇到問(wèn)題,我真的不知道該怎么做。這是我的解決方案的代碼:private String caesarCipher(String message) {    Scanner input = new Scanner(System.in);    StringBuilder cipher = new StringBuilder();    char ch;    int key;    System.out.print("Enter a key: ");    key = Integer.parseInt(input.nextLine());    for(int i = 0; i < message.length(); i++) {        ch = message.charAt(i);        if(ch >= 'a' && ch <= 'z'){            ch = (char)(ch + key);            if(ch > 'z'){                ch = (char)(ch - 'z' + 'a' - 1);            }            cipher.append(ch);        }        else if(ch >= 'A' && ch <= 'Z'){            ch = (char)(ch + key);            if(ch > 'Z'){                ch = (char)(ch - 'Z' + 'A' - 1);            }            cipher.append(ch);        }        else {            cipher.append(ch);        }    }    return cipher.toString();}有人可以向我解釋以下陳述背后的過(guò)程和推理嗎:if(ch > 'z'){    ch = (char)(ch - 'z' + 'a' - 1);}
查看完整描述

1 回答

?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

它永遠(yuǎn)不會(huì)允許加密字符超出其假定的范圍,即 a - z。a 和 z 的 ascii 分別為 97 和 122,您只希望凱撒密碼加密在此字符范圍內(nèi)。

這將檢查 的 ascii 代碼是否ch大于 z 的 ascii代碼

if(ch > 'z'){

如果是,它將計(jì)算:(ascii of ch) - (ascii of z) + (ascii of a) - 1。

ch = (char)(ch - 'z' + 'a' - 1);

它被翻譯成ch = (char)(ch - 122 + 97 - 1);

假設(shè)您想用a密鑰加密字符3。該程序?qū)⒉捎?97 (ascii of a) + 3。您將得到 100,這是 的 ascii d。然而,如果你想z用密鑰加密怎么辦3

和以前一樣,需要 122 (ascii of z) + 3 = 125。但是,在 97 - 122 (az) 范圍內(nèi)找不到 125。因此,您將得到一個(gè)不需要的字符(在本例中,125 是 的 ascii })。

因此,(ch - 'z' + 'a' - 1)將確保任何超過(guò) ascii 122 的字符都將被轉(zhuǎn)換回 ascii 范圍僅包含 97 和 122 的字符。在 125 的示例中,ch = (char)(125 - 122 + 97 - 1)=> ch = (char)(99)=> ch = c


查看完整回答
反對(duì) 回復(fù) 2023-10-13
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)