中文字符转十,二,八 十六,进制原理分析

32 篇文章 0 订阅
订阅专栏
一,中文字符转十进制原理分析

GBK编码中一个汉字由二个字符组成,获取汉字字符串的方法如下
复制代码 代码如下:

$string = "不要迷恋哥";
$length = strlen($string);
for($i=0;$i<$length;$i++){
if(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);

php-ord-dec-number
由于一个汉字为两个字符组成,通过ord()函数获取字符的ASCII值如果大于127时,就可以确定当前字符为一个汉字的前半部分,还需要获取汉字的后半部分。当然,这种判断的方法要结合具体的开发环境,如果存在ASCII值大于127的单个字符,这种方法判断显然就不正确。

PHP实现中文字符转十进制的原理就是通过for循环的方法获取一个汉字的二个字符,然后使用ord()函数把各字符转换为十进制。如上分别是:不 [178 187] 要 [210 170] 迷 [195 212] 恋 [193 181] 哥 [184 231]

二,中文字符转十六进制原理分析

使用UltraEdit开发工具可以直接查看中文字符的十六进制,如下图

如,查看“不要迷恋哥”这五个字的十六进制
ultraedit-16-hex
从上面的图可以知道各个汉字对应该的十六进制字符分别是:不 B2BB 要 D2AA 迷 C3D4 恋 C1B5 哥 B8E7

PHP 实现中文字符转十六进制的原理就是首先使用ord()函数取出各个中文字符的十进制,具体可查看[PHP函数篇掌握ord()与chr()函数应用],然后使用dechex()函数把各个中文字符转化为十六进制

实例源代码
复制代码 代码如下:

$string = "不要迷恋哥";
$length = strlen($string);
echo $string;
$result = array();
//十进制
for($i=0;$i<$length;$i++){
if(ord($string[$i])>127){
$result[] = ord($string[$i]).' '.ord($string[++$i]);
}
}
var_dump($result);
//十六进制
$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = dechex($dec[0])." ".dechex($dec[1]);
}
var_dump($strings);

结果如下图

php-dec-hex-string

通过上面的方法实现把中文字符转换为十六进制,输出结果可对比使用UltraEdit开发工具获取的十六进制。

三,中文字符转二进制和八进制原理分析

实现中文字符转二进制和八进制与上面的十六进制转换原理一样,只是转换的函数不同,结合上面的实例代码,实现如下

中文字符转二进制,方法如下
复制代码 代码如下:

$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = decbin($dec[0])." ".decbin($dec[1]);
}
var_dump($strings);

结果如下:
php-dec-bin-string
中文字符转八进制,方法如下
复制代码 代码如下:

$strings = array();
foreach($result as $v){
$dec = explode(" ",$v);
$strings[] = decoct($dec[0])." ".decoct($dec[1]);
}

结果如下:
php-string-hex
了解PHP实现中文字符进制转换原理,再通过PHP内置函数urldecode()就可以把十六进制的字符串通过组合转换为正常的中文汉字
汉字与UNICODE十进制十六进制
04-20
汉字与UNICODE十进制十六进制换 破解、汉化英文软件时很适用。
C语言-顺序栈实现十进制换为进制-进制-十六进制
12-28
### C语言顺序栈实现十进制进制进制十六进制换 #### 一、概述 本篇文章将详细介绍如何使用C语言中的顺序栈来实现十进制数字向进制进制以及十六进制换。通过分析给出的代码示例,我们将...
汉字16进制汉字10进制
abc257300的博客
10-25 568
如题要想十进制必须先16进制后再10.代码如下 public string GetCode16(string k) { byte[] data = Encoding.Unicode.GetBytes(k); StringBuilder result = new StringBuilder(); ...
汉字换为进制原理
一杯敬明天
03-13 1万+
两个字节成一个汉字 1.汉字信息交换码(国标码)   《信息交换用汉字 编码字符集·基本集》是我国于1980年制定的国家标准 GB2312-80,代号为国标码,是国家规定的用于汉字信息处理使用的代码依据.    GB2312-80中规定了信息交换用的6763个汉字和682个非汉字图形符号(包括几种外文字母、数字和符号)的代码.   6763个汉字又按其 使用频度、组词能力以及用途大小分成一级常用...
汉字换成进制十进制十六进制显示
热门推荐
知行者的专栏
09-28 2万+
汉字换成进制十进制十六进制显示今天我的网友猎心锁跟我讨论汉字转十进制的问题。进制十进制十六进制这三个进制之间的换就让我头疼,现在又加上了汉字,无疑是“雪上加霜”。我的大脑不堪重负,思绪混乱。下午到图书馆查阅资料,也没发现有价值的线索,以致最终都没有讨论出答案。在我的网友“冷静啊冷静”的帮助下,终于在www.pudn.com上找到了相关的资料,下载下来试试,果然实现了我们想
提取拼音首字母 在很多软件中,输入拼音的首写字母就可以快速定位到某个词条。
韩世雷 程序员专栏
04-28 6230
/* 提取拼音首字母 在很多软件中,输入拼音的首写字母就可以快速定位到某个词条。 比如,在铁路售票软件中,输入: “bj”就可以定位到“北京”。 怎样在自己的软件中实现这个功能呢?问题的关键在于:对每个汉字必须能计算出它的拼音首字母。 GB2312汉字编码方式中,一级汉字的3755个是按照拼音顺序排列的。 我们可以利用这个特征,对常用汉字求拼音首字母。 GB2312编
汉字转十进制java_java 汉字化为全拼
weixin_35473679的博客
02-13 636
private static LinkedHashMap spellMap = null;static {if (spellMap == null) {spellMap = new LinkedHashMap(20901);}initialize();}private static void initialize() {spellMap.put("129-74", "you");spellMap....
十六进制浮点数,十六进制浮点数在线,LabView
09-10
1. **十六进制进制**:LabVIEW提供了内置函数,如“Hex to Bin”(十六进制进制),可以将16进制数字换为对应的进制形式。 2. **调整进制位数**:根据浮点数的位宽(32位或64位),可能需要对进制...
MATLAB进制转十进制函数
10-19
在MATLAB中,进制数据换为十六进制是一个常见的操作,特别是在处理数字信号处理、数据存储...通过查看和分析这些文件,你可以深入理解进制十六进制换的内部工作原理,并且学习如何在实际项目中应用这些知识。
十六进制字符串工具
05-08
如果这些十六进制数字代表Unicode编码,那么每个数字对可能代表一个更复杂的字符,如中文汉字。 在给定的文件名"Hex2Chinese"中,我们可以推测这是一个将十六进制数据换为中文字符串的工具。这意味着它不仅处理...
汉字进制
12-31
可随意将汉字换为各种进制。 比如:进制十进制十六进制等......
中文换成十六进制编码
10-29
中文换成十六进制编码中文换成十六进制编码
中文16进制
06-21
中文换成16进制字节集数组,一般用于找游戏人物基址
中文文本换成16进制十进制进制软件
12-13
中文文本换成16进制十进制进制软件
c/c++进制中文
06-22
c/c++进制中文 16进制 2进制 10进制 相互换........................................................................
字符串和十六进制之间的换方法实例
09-04
在编程中,尤其是在C#语言中,经常需要处理字符串与十六进制之间的换。这是因为不同的数据格式和存储需求可能需要将字符串表示的数据换为十六进制形式,反之亦然。以下是一个详细的关于如何在C#中进行这两种换...
字符数字10进制代码实现
m0_46551861的博客
10-19 1359
思路: 在计算机中将16进制数字换成10进制数字,例如:AF38=A16 ^ 3+F16^2+316 ^1+816 ^0; 1.将字符数字换成16进制的数字; 2.根据16进制10进制的计算方法进行代码设计; import java.util.Scanner; public class Main { private static long 10进制(String hexString){ long r=0; char[] chars=hexString.toC
中文变成十进制的数字
weixin_45661979的博客
10-06 998
public class Dn { public static void main(String[] args) { int d=0; char n='妮'; d=n; System.out.print(d); } }
linux十六进制文本转十进制,用Linux/Unix命令把十六进制换成十进制()
weixin_31681589的博客
05-14 560
那天写个脚本,需要把十六进制的数字十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了。先列两种简单的方法:1) echo 自己就能实现,相当简单。不过,不知道如果要从十进制换回十六进制能怎么写。]$ echo $((0xac))1722) printf 也可以哦,十六进制十进制互相换都没问题]$ printf %d 0xac1...
ASCII码对照表:进制十进制十六进制详解
ASCII码,全称为American Standard Code for Information Interchange(美国信息交换标准...了解ASCII码的进制十进制十六进制对照,可以帮助我们深入理解字符编码的底层工作原理,以及在编程和数据处理中的应用。
写文章

热门文章

  • PowerDesigner之CDM、PDM、SQL之间转换 37806
  • mysqldump 导出 csv 格式 --fields-terminated-by=, :字段分割符; 33513
  • http 响应头里 没有 或者有 content-length 的几种可能性 32625
  • 当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序 31522
  • php 解析 xml simplexml_load_string()返回的是一个对象 26616

分类专栏

  • jquery 6篇
  • mysql 26篇
  • erlang 1篇
  • css 3篇
  • linux 24篇
  • php 32篇
  • js 13篇
  • nginx 7篇
  • redis 5篇
  • mongodb 1篇
  • http 4篇
  • memcache 1篇
  • 摄影 4篇
  • 字符集编码 2篇
  • 搜索 1篇
  • 哇咔咔 1篇

最新评论

  • 关于内网和外网 区别

    约瑟夫不洗脚: 老师教的时候,不知道事情的严重性,等遇到麻烦回头来补

  • mysqldump 导出 csv 格式 --fields-terminated-by=, :字段分割符;

    wangyibowangjunk: “如果你不指定一个lines子句,缺省值与如果你这样写的相同:lines terminated by'\n'” 为什么学计算机的非要写得让别人读不通,这句话不应该是这样吗 :“如果你不指定一个lines子句,缺省值与你这样写的相同:lines terminated by'\n'”

  • 当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序

    jwbecalm: 3、4步骤是不是颠倒了?应该是先用HAVING对分组后的数据进一步筛选,得到结果集 SELECT再对结果集过滤对应的列

  • 关于内网和外网 区别

    weixin_37805007: 点赞,写的非常不错!

  • 当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序

    qq_40459672: 写的太好了

大家在看

  • Springboot计算机毕业设计程序设计竞赛团队管理系统72262 496
  • Springboot计算机毕业设计滁州市电动车牌照管理系统cfc49
  • js的入口函数,及入口函数的作用 102
  • 【数据结构】动态规划:揭开算法优化的秘密 1170
  • 新手必刷的10个渗透靶场(非常详细),零基础入门到精通,看这一篇就够了_推荐新手打的靶场

最新文章

  • 不要那么无知。
  • CentOS系统 给PHP打fpm补丁时提示 -bash: patch: command not found
  • 注册码生成器 略屌略屌
2016年9篇
2015年16篇
2014年42篇
2013年20篇
2012年47篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家山东仿铜玻璃钢雕塑制作重庆顺昌专业玻璃钢雕塑厂家广东玻璃钢马雕塑定制辽宁玻璃钢景观雕塑安阳人物玻璃钢雕塑南宁欧式玻璃钢雕塑河北定制玻璃钢雕塑句容 玻璃钢 雕塑玻璃钢雕塑 唐山汕头玻璃钢雕塑批发定制玻璃钢景观雕塑图片商场 海洋主题 美陈玻璃钢雕塑卡通推荐甘南彩色玻璃钢雕塑哪家好宁波个性化玻璃钢雕塑三门峡玻璃钢智能雕塑吴江欧岩广场玻璃钢雕塑制作团队武汉玻璃钢花盆组合杭州商场美陈策划创意产业园玻璃钢雕塑装饰开封室内玻璃钢景观雕塑厂家湛江玻璃钢动物雕塑批发威海玻璃钢马雕塑宿州环保玻璃钢雕塑设计生产玻璃钢花盆机器玻璃钢雕塑环保袋厦门商场美陈装饰佛山拿罐女神玻璃钢雕塑上海玻璃钢雕塑摆件厂家直销商场创意商业美陈作品香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化