
四种
在 golang 中,不能直接使用二进制来表示一个整数,它沿用了 c 的特点。
package main import "fmt" func main() { var i int = 5 //二进制 fmt.Printf("%b \n",i) var j int = 011 // 011=>8+1 = 9 //八进制 fmt.Println("j=",j) var k int = 0x11 //0x11 => 16+1 =17 //十六进制 0x或者0X开头 fmt.Println("k=",k) } //101 //j= 9 //k= 17


规则:从最低位开始(右边的),将每个位上的数提取出来,乘以2的(位次-1)次方然后求和
案例:1011= $12^3+02^2+12^1+12^0$=8+2+1 = 11
规则:从最低位开始(右边的),将每个位上的数提取出来,乘以8的(位次-1)次方然后求和
案例:0123 = $18^2+28^1+3*8^0$=64+16+3 = 83
规则:从最低位开始(右边的),将每个位上的数提取出来,乘以16的(位次-1)次方然后求和
案例:0x34A = $1016^0+416^1+3*16^2$= 10+64+768 = 842
规则:将该数不断除以2,直至商为0为止,然后将每步得到的余数倒过来,就是对应的二进制
案例:56= 111000
规则:将该数不断除以8,直至商为0为止,然后将每步得到的余数倒过来,就是对应的八进制
案例:156=0234
规则:将该数不断除以16,直至商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制
案例:356= 0x164
规则:将二进制数每三位一组(从低位开始组合--右边!),转成对应的八进制数即可
案例:11010101 = 11/010/101 = 324 = 0324
规则:将二进制数每四位一组(从低位开始组合--右边!),转成对应的十六进制数即可
案例:11010101= 1101/0101 = 13/5 = D5 = 0xD5
规则:将八进制数每一位(从低位开始组合--右边!),转成对应的一个3位的二进制数即可
案例:0237= 10/011/111 = 10011111
规则:将十六进制数每一位(从低位开始组合--右边!),转成对应的一个4位的二进制数即可
案例:0x237= 10/0011/0111 = 1000110111
有点乱,重新总结下
乘以被转进制的(位次-1)次方然后求和
被转换数除以要转的进去,直至商为0为止,然后将每步得到的余数倒过来
转八进制,从右边开始,每三位划分
转十六进制,从右边开始,每四位划分
八进制转,从右边开始,每三位划分
十六进制转,从右边开始,每四位划分
更多PHP相关技术文章,请访问PHP教程栏目进行学习!
Das obige ist der detaillierte Inhalt vonPHP中的进制转换. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
So öffnen Sie eine PHP-Datei
So entfernen Sie die ersten paar Elemente eines Arrays in PHP
Was tun, wenn die PHP-Deserialisierung fehlschlägt?
So verbinden Sie PHP mit der MSSQL-Datenbank
So verbinden Sie PHP mit der MSSQL-Datenbank
So laden Sie HTML hoch
So lösen Sie verstümmelte Zeichen in PHP
So öffnen Sie PHP-Dateien auf einem Mobiltelefon