JavaScript是一門強大的編程語言,在處理一些進制算法(如顏色轉換、哈希算法等)時也需要涉及到進制的表示和轉換。本文將介紹如何在JavaScript中表示不同進制的數字。
在JavaScript中,可以通過在數字前面加上特定的前綴來表示不同進制的數字。下面是一些常見的表示方式:
//十進制 var num1 = 10; //二進制,使用0b或0B前綴 var num2 = 0b1010; //八進制,使用0o或0O前綴 var num3 = 0o12; //十六進制,使用0x或0X前綴 var num4 = 0xA;
上述代碼中,num1表示的是十進制的10,num2表示的是二進制的10(即十進制的2),num3表示的是八進制的10(即十進制的8),num4表示的是十六進制的10(即十進制的16)。
在開發過程中,我們可以將不同進制的數字進行相互轉換。下面我們來介紹一些常見的轉換方法:
將十進制轉換為其他進制:
//將十進制的10轉換為二進制 var num1 = 10; var binary1 = num1.toString(2); //1010 //將十進制的10轉換為八進制 var num2 = 10; var octal1 = num2.toString(8); //12 //將十進制的10轉換為十六進制 var num3 = 10; var hex1 = num3.toString(16); //a
上述代碼中,toString() 方法可以接受一個參數,表示目標進制。例如,num1.toString(2)返回的是二進制的字符串"1010"。
將其他進制轉換為十進制:
//將二進制的1010轉換為十進制 var binary2 = "1010"; var num4 = parseInt(binary2, 2); //10 //將八進制的12轉換為十進制 var octal2 = "12"; var num5 = parseInt(octal2, 8); //10 //將十六進制的a轉換為十進制 var hex2 = "a"; var num6 = parseInt(hex2, 16); //10
上述代碼中,parseInt() 方法可以接受兩個參數,第一個參數表示要被轉換為十進制的字符串,第二個參數表示該字符串的進制。例如,parseInt(binary2, 2)返回的是十進制的10。
鑒于JavaScript對數字的極大容忍度,可能會出現一些令人驚訝的情況:
//二進制的超長數字,前導0被忽略 var num7 = 0b100000000000000000000000000000001; //2147483649,超過了32位整數的最大值 //八進制的非法數字,前導0也被忽略 var num8 = 01234567; //342391 //十六進制的非法數字,忽略大小寫 var num9 = 0xH; //0
綜上所述,在JavaScript中表示和轉換進制不僅方便而且還有趣味性,我們可以根據實際需要使用不同的進制,輕松實現復雜的算法。
上一篇div中漸變