因此,我在codewars.com上遇到了一些問題,並且遇到了有關基本加密的問題(https://www.codewars.com/kata/basic-encryption/javascript)。目標是獲取一個字符串值,並將它的x值在ASCII圖表上右移。按位運算符如何工作?
這裏是我的初步解決方案:
function encrypt(text, rule) {
let res = ''
for(let i = 0; i<text.length; i++) {
res += (String.fromCharCode(text.charCodeAt(i)+rule))
}
return res
};
但是,它沒有通過所有的測試,所以我看了看解決方案,這就是讓我通過測試:
function encrypt(text, rule) {
let res = ''
for(let i = 0; i<text.length; i++) {
res += (String.fromCharCode(text.charCodeAt(i)+rule & 255))
}
return res
};
所有因爲添加& 255
,有人可以向我解釋什麼真的改變了,添加使我的代碼有效嗎?
提示,ascii字符的charcode不能大於255 –
實際上,一個ASCII字符的代碼不能大於127.但是在大多數情況下,當人們的意思是「8位」時,人們會說「ASCII」 。問題清楚地表明,有效字符的範圍是0-255,所以他們期望的是,您將會使用該範圍內的任何字符,並僅返回該範圍內的字符。 '&255'會確保這一點,就像'%256'一樣。 – jcaron