go 字符串中的进制转化

news/2025/2/23 9:32:39/文章来源:https://www.cnblogs.com/maidongdong/p/18731848
s := "雨痕\x411\1422\u4F60"
fmt.Println(s)
fmt.Printf("%s\n", s)
fmt.Printf("%x, len: %d\n", s, len(s))

s := "雨痕\x111\1422\u4F60"

然后注释了s = "1",接着三个打印语句,分别是Println、Printf用%s,以及另一个Printf用%x和len。用户想知道输出结果,还要解释各个转义字符的含义。

 

首先,我需要理解字符串s的构成。字符串里的内容包含普通字符和转义序列。可能有中文和其他转义字符组合。需要逐个分析转义的部分。

 

首先,字符串开始是“雨痕”,这两个中文字符。接下来是\x11,这可能是一个十六进制的转义,因为\x后面跟两个十六进制数字。所以这里应该是\x11,也就是ASCII码17,对应的字符是控制字符,可能显示不出来或者显示成某种符号。但后面的字符可能有问题,因为原字符串中的\x111,这里的\x后面是三个数字吗?或者是不是\x11后面跟着一个1?

 

这个时候,我需要回忆Go语言的转义规则。在Go中,\x后面必须跟两个十六进制数字,所以\x11是正确的,而之后的第三个1可能属于后面的字符。比如,\x11后面接着一个'1'和一个'\142'吗?或者可能原字符串中的写法存在错误?

 

原字符串是“\x111\1422\u4F60”。可能分解为:

 

 

\x11:十六进制,两个字符,所以这是正确的,对应ASCII的17。

- 然后是1:普通字符'1'。

- \142:八进制转义,因为反斜杠后面跟着1到3个八进制数字。八进制的142对应的十进制是:1*64 +4*8 +2 = 64+32+2=98,对应ASCII的字符是'b'(因为a是97,对吗?或者我记错了?需要确认。ASCII中,小写a是97,b是98,所以对。所以这里\142转义成字符'b'。

- 然后接着一个2,普通字符'2'。

- \u4F60:这是Unicode转义,必须四个十六进制数字,所以4F60对应的Unicode码点是U+4F60,这个字符是什么?查一下,4F60是汉字“你”的Unicode码点。比如,“你好”中的“你”就是这个字。

 

所以,整个字符串组合起来的话,各个部分是:

 

"雨痕" + "\x11" + "1" + "\142" + "2" + "\u4F60"

 

所以组合后的字符串应该是:雨痕\x111\1422\u4F60 → 雨痕(接着一个十六进制11的字符,即垂直制表符?),然后1,然后b(因为\142是98),然后2,然后“你”。

 

 

现在,需要确定每个字符在Go中的存储方式。Go中的字符串是UTF-8编码的字节序列。所以每个字符会被编码成对应的UTF-8字节。

 

例如:

 

- '雨'的Unicode码点是U+96E8,对应的UTF-8编码是三个字节:E9 9B A8。

- '痕'的码点是U+75D5,UTF-8是E7 97 95。

- \x11对应的ASCII字符,UTF-8就是一个字节:11。

- '1'是ASCII,31。

- 'b'是ASCII,62。

- '2'是32。

- '你'的码点U+4F60,UTF-8编码是E4 BD A0。

 

所以整个字符串的字节序列应该是:

 

E9 9B A8(雨) E7 97 95(痕) 11 31(1) 62(b) 32(2) E4 BD A0(你)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/888267.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

客流统计自动识别摄像头

客流统计自动识别摄像头提供了重要的决策依据。通过分析客流数据,商家可以了解顾客的消费习惯与高峰时段,从而优化营业时间、调整商品布局和促销策略。例如,如果某个时间段内顾客数量明显增加,商家可以考虑在此时推出促销活动,以吸引更多消费者。此外,通过长期的数据积累…

老人摔倒自动监控摄像头

老人摔倒自动监控摄像头通过智能识别技术,可以实时监测到老年人的活动状态。一旦系统检测到异常情况,比如老人摔倒,它会立即向家庭成员或护理人员发送警报。这种及时性大大提高了救助的效率,使得老人能够在最短时间内得到帮助。此外,一些先进的监控系统还配备了语音通话功…

在Odoo18.0中使用韵达速递

本文给大家带来的的是odoo与韵达速递的免费对接方案。 注册韵达开放平台 想要使用韵达速递,首先我们就需要注册一个韵达开放平台的账号,并创建一个开放平台应用。 创建完应用之后,我们需要以下4个参数:AppKey: 应用的key AppSecret: 应用的密钥 PartnerId: 韵达网点分配的…

积水自动监控摄像头

积水自动监控摄像头主要通过安装在关键路段、排水口和易积水区域的摄像头,对降雨和积水情况进行实时监控。这些摄像头配备了先进的图像识别技术,能够自动识别地面是否存在积水,并及时将数据传输到城市管理中心。一旦监测到积水情况,系统会立即发出警报,提醒相关部门迅速采…

清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!

前言 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单。该份教程旨在通过AI技术重构传统科研模式,提升研究效率与智能化水平。DeepSeek访问地址:https://chat.deepseek.com 清华大学推出的 DeepSeek 从入门到精通(104页)免费教程! 清华大学推出第二…

读DAMA数据管理知识体系指南02数据管理(下)

数据管理涵盖数据优化、元数据管理、多角度思考、生命周期管理、风险管理、领导力及战略制定,需确保数据质量、安全并降低风险,利用DAMA框架等指导数据管理实践。1. 数据优化计划 1.1. 数据也许被视为独立于业务流程存在 1.2. 业务流程与支持它们的技术之间的关系 1.3. 系统的…

全新方案80M/S,告别限速!

聊一聊 资源和文件转载的最佳方式是通过网盘链接分享,这种方式的优点在于可以避免地区、局域网和文件大小的限制。近年来,随着123云盘、阿里云盘和夸克网盘等网盘逐步崭露头角,各具优势。然而,依然没能撼动百度网盘老大哥的位置,据统计,百度网盘的依然是众多网盘中用户群…

windows zookeeper启动

如果启动后闪退则 在 zkEnv.cmd 配置日志输出级别 增加 TRACEFILE: 重新启动后在 logs 目录下查看日志输出 : 出现8080 端口占用 在zoo.cfg 增加jetty 启动的端口: admin.serverPort=9000 参考:https://blog.csdn.net/l123lgx/article/details/136627491

markdown笔记软件,windows端选用

要求从剪切板粘贴图片,可以自定义相对位置。 类似typora的所见即所得渲染。 代码块高亮(最好有一键复制功能) 大纲功能。层级关系用起来会更舒服。 Typora几乎是没有对手的,如果不收费就没有别的软件什么事了。淘汰项 ide工具 vscode和idea是我首先排除的,专业的工具做专业…

广州移动大众从化0月租卡在哪里购买?怎么办理?

https://xsjcloud.com V*x:gzydc00月租卡的好处有哪些呢 1,真正的零月租 (接电话免费),不用不扣费 2,不用不扣费,打电话即可触发 3,需到广州指定移动营业厅激活号码(广州润粤移动厅,从化移动综合楼厅),到手如实 4,可注册其他平台账号,微信号等, 广州润粤服务厅办…

ThreadPoolExecutor的内部类Worker详细解析

一、定义 ThreadPoolExecutor 的内部类 Worker 是线程池的核心实现之一,它封装了线程和任务,并负责执行任务。Worker 类继承自 AbstractQueuedSynchronizer(AQS), 并实现了 Runnable 接口。通过 Worker,线程池能够高效地管理线程的生命周期和任务的执行 1、Worker 类的设…

webdriver打开Chrome闪退问题的解决方法

现状:webdriver控制打开Chrome后闪退解决方案:强制等待,使用time.sleep()