首页 > 其他分享 >位,字节,字, 二进制,八进制,十进制,十六进制简单梳理

位,字节,字, 二进制,八进制,十进制,十六进制简单梳理

时间:2023-01-18 15:45:09浏览次数:40  
标签:十六进制 13 字节 10 二进制 str 八进制 ASCII 十进制

定义:

位(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

相关文章

  • 十六进制代码转RGB
    工作中有这么一个场景:布局的时候设计稿给的是纯色,然后给一个透明度,opacity:0.5; background:#222; 此时如果这个元素上还有文字,文字也将被透明。这时候就想着用rgb色......
  • YACS 2022年12月月赛 乙组 T2 八进制小数 题解
    纪念一下,两件事。$1.$打$YACS$一年了,时间过得好快啊。$2.$第一次$AK$乙组。高精板子。$8$进制转十进制,很简单。小数部分第一位的数字乘上$8^{-1}$,第二位就乘上......
  • C语言十进制转2进制数
    #include<stdio.h>#include<math.h>longtoBinary(intnum);intmain(intargc,charconst*argv[]){ intnum; printf("Pleaseinputanumber:"); scanf("%......
  • [oeasy]python0043_八进制_oct_octal_october_octave
    八进制(oct)回忆上次内容什么是转义?转义转义转化含义​​\​​是转义字符​​\n​​、​​\r​​是转义序列还有什么转义序列吗?​​\a​​是响铃​​\b​​退格......
  • [oeasy]python0043_八进制_oct_octal_october_octave
    八进制(oct)回忆上次内容什么是转义?转义转义转化含义\是转义字符\n、\r是转义序列还有什么转义序列吗?\a是响铃\b退格键\t水平制表符tab键\v......
  • 003 python一个整数或byte数据转为十六进制字符串不带0x
    把一个byte数据转化为字符,例如byte数据为05,要转换为十六进制字符串hexstr,不带0xd=5hs=((str(hex(d)))[2:]).zfill(2)如上,hs为转换后的字符串。原理就是先用hex转化......
  • 十六进制加法、乘法表
    1+1=21+2=3  2+2=41+3=4  2+3=5  3+3=61+4=5  2+4=6  3+4=7  4+4=81+5=6  2+5=7  3+5=8  4+5=9  5+5=A1+6=7  2+6=8  3+6=9  ......
  • 二进制数和十六进制数
    最后再补充说明一下二进制数和十六进制数的关系。在以位为单位表示数据时,使用二进制数很方便,但如果位数太多,看起来就比较麻烦。因此,在实际程序中,也经常会用十六进制数来代......
  • Python 2.7 十六进制字符数组 转 字符串 (字符是Unicode字符)
    有一串十六进制数据,是Uncode字符。importstructstrhex='003100310031'buf=strhex.decode("hex")value=u''slen=len(buf)/2si=0whilesi<slen:tmp=buf[si......
  • 任意进制到十进制的转换
    十进制:Java中,数值默认都是10进制,不需要加任何修饰。二进制:数值前面以0b开头,b大小写都可以。八进制:数值前面以0开头。十六进制:数值前面以0x开头,x大小写都可以。  ......