定义:
位(bit):也叫比特,计算机中最小的计量单位;1比特也即1个二进制位
字节(Byte):1个字节=8比特(位bit)=8个二进制位=2个16进制位
字(word):UTF-8下一个汉字由三个字节组成;其他一般情况下都由两个字节组成
二进制:0和1
八进制:0,1,2,3,4,5,6,7
十进制:0,1,2,3,4,5,6,7,8,9
十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
换算:
二进制13:1101 (1*2^3 + 1*2^2 + 0*2^1+1*2^0 = 8+4+0+1=13)
八进制13:15 (1*8^1 + 5*8^0 = 8 + 5 =13)
十进制13: 13 (1*10^1 + 3*10^0 = 10 +3 =13)
十六进制13:D(D*16^0 = 13*16^0 = 13)
显示数字13: 1(占用二个字节:0011 0001,写二进制太麻烦改为写十六进制 31),3(占用二个字节 0011 0011 写二进制太麻烦改为写16进制 33);
PHP中运用:
进制转换: base_convert(要转换的数, 数字原来的进制, 要转换的进制);
字符转ASCII:ord(字符);
ASCII转字符:chr(ASCII 值);
中英文数字转二进制 与二进制转中英文数字:
1 //UTF-8编码 2 $str = '中国1定NICE!!'; 3 $strlen = strlen($str); //3(中) + 3(国) + 1(1) + 3(定) + 1(N) + 1(I) + 1(C) + 1(E) + 1(!) + 3(!) = 18 4 $n = 0; 5 $strBin = ''; 6 while ($n < $strlen) { 7 $strAscii = ord($str[$n]);//字节转ASCII码,值为十进制 8 $binChar = base_convert($strAscii, 10, 2);//ASCII码转二进制 9 if(strlen($binChar) < 8) {//一个字节占8位 不足补0 10 $binChar = str_repeat("0", 8 - strlen($binChar)).$binChar; 11 } 12 $strBin .= $binChar; 13 $n++; 14 } 15 echo $strBin."<br/>";//汉字转二进制 16 17 $str = ''; 18 $ByteArr = str_split($strBin, 8); //分割成字节数组 总计18元素 19 foreach ($ByteArr as $Byte) { 20 $decChar = base_convert($Byte, 2, 10); //一个字节的二进制转十进制 21 $str .= chr($decChar);//ASCII码转字 22 } 23 echo $str; //中国1定NICE!!
标签:十六进制,13,字节,10,二进制,str,八进制,ASCII,十进制 From: https://www.cnblogs.com/ryuma/p/17059995.html