那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了。
先列两种简单的方法:
1) echo 自己就能实现,相当简单。不过,不知道如果要从十进制转换回十六进制能怎么写。
]$ echo $((0xac))
172
2) printf 也可以哦,十六进制和十进制互相转换都没问题
]$ printf %d 0xac
172
]$ printf %x 172
ac
然后,稍微麻烦一点的是 bc 这个命令。虽然网上介绍的人很多,可是到底 bc 的那两个参数是怎么用的,还是不太明白,感觉自己也是从结果推原因而已,并不真的明白这个命令的参数如此设计的意义。不管怎样,先把例子写在这里,将来再研究吧。
3) bc 的作用:十六进制和十进制互转,十进制和二进制之间也可以转换。
把十六进制转换成十进制
]$ echo 'ibase=16;obase=A; AC'|bc
172
]$ echo 'ibase=16;obase=1010; AC'|bc (Linux)
0172
> echo 'ibase=16;obase=1010; AC'|bc (Unix)
output base is too large
172
注意这里:在 Unix 里面执行的时候会报这么个错误,但还是会有结果。
]$ echo 'ibase=16;AC' | bc
172
把十进制转换成十六进制
]$ echo 'ibase=10;obase=16;172'|bc
AC
]$ echo 'obase=16;172'|bc
AC
把十进制转换成二进制
]$ echo 'obase=2;172'|bc
10101100
把二进制转换成十进制
]$ echo 'ibase=2;10101100'|bc
172
貌似 ibase 和 obase 这两个参数的 default 值就是10(十进制),所以似乎如果不写的话,ibase 代表输入的参数是十进制,obase 代表输出的值是十进制。也就是说,不是十进制的时候才注明,似乎这样就不会错了。
恩,再研究研究。
原文:
http://icelingr.blogbus.com/logs/50889108.html
那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了。先列两种简单的方法:1) echo 自己就能实现,相当简单。不过,不知道如果要从十进制转换回十六进制能怎么写。 ]$ echo $((0xac)) 1722) printf 也可以哦,十六进制和十进制互相转换都没问题
新手指南,一些很好的 Shell 诀窍, 利用这些强大的技术来学习编写脚本的基础知识。当编写 Shell 程序时,您通常会遇到一些特殊的情况,希望采用自动方式处理。本教程包括一些
关于此类情况的 Bourne Shell 脚本示例。这些情况包括字符串的进制转换(
十进制
到十六进制、
十六进制到
十进制
、
十进制
到八进制,等等)、在管道循环中读取键盘、Subshell 执行、内联输
入、为目录中的每个
文件
执行一次
命令
,以及使用多种方法构造连续循环。
封面页:包含标题、作者姓名、导师姓名、答辩日期等基本信息,简洁明了地展示PPT的主题和内容。
目录页:列出PPT的主要内容,包括研究背景、研究目的、研究方法、研究结果、结论与建议等部分,方便评委和听众了解整体结构。
研究背景:介绍研究领域的现状、前人研究
成
果、研究问题的提出等,为后续研究内容做铺垫。
研究目的:明确阐述研究的目标和预期
成
果,让评委和听众了解研究的价值和意义。
研究方法:详细介绍研究过程中采用的方法、技术、实验设计等,保证研究的科学性和可靠性。
研究结果:展示研究得出的数据、图表、结论等,用事实和数据支撑研究观点。
结论与建议:总结研究
成
果,提出对研究领域的贡献、创新点以及可能的改进方向和建议。
致谢页:感谢导师、同学、实验室等给予的支持和帮助,展示个人感恩之心。
二、设计原则
简洁明了:PPT设计要简洁明了,避免过多的文字和复杂的图表,突出核心内容。
图文并茂:适当使用图表、图片等可视化元素,提高PPT的吸引力和易读性。
配色和谐:选择恰当的配色方案,使PPT整体风格统一、和谐,提高视觉效果。
字体清晰:使用清晰易读的字体,避免使用过于花哨的字体或字号,确保评委和听众能够轻松阅读。
三、制作技巧
提前准备:提前规划PPT的结构和内容,收集好所需素材和数据,避免在答辩现场出现临时拼凑的情况。
突出重点:用加粗、变色、放大等方式突出PPT中的关键信息和重点内容,引导评委和听众的关注点。
精炼语言:用简洁明了的语言表达研究内容和观点,避免使用过于复杂或晦涩难懂的词汇和句子。
适度互动:在答辩过程中,根据评委和听众的反馈和提问,适时调整PPT的内容和展示方式,保持与听众的互动和沟通。
【项目资源】:
包含前端、后端、移动开发、操作
系统
、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。
包括STM32、ESP8266、PHP、QT、
Linux
、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。
【项目质量】:
所有源码都经过严格测试,可以直接运行。
功能在确认正常工作后才上传。
【适用人群】:
适用于希望学习不同技术领域的小白或进阶学习者。
可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
【附加价值】:
项目具有较高的学习借鉴价值,也可直接拿来修改复刻。
对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。
【沟通交流】:
有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
鼓励下载和使用,并欢迎大家互相学习,共同进步。
要将
Unix
上的二进制库转换
成
Linux
上的大小端格式,首先需要了解大端和小端的概念。
大端(Big-endian)是指将多字节的数据在内存中从高地址开始存放,低字节存放在高地址上,如0x12345678,在内存中的存放顺序是0x12、0x34、0x56、0x78。
小端(Little-endian)是指将多字节的数据在内存中从低地址开始存放,低字节存放在低地址上,如0x12345678,在内存中的存放顺序是0x78、0x56、0x34、0x12。
要将
Unix
上的二进制库转换
成
Linux
上相应的大小端格式,可以按照以下步骤进行:
1. 首先,使用适当的工具(如objcopy或objdump)将二进制库从
Unix
系统
上导出为目标
文件
格式(如ELF格式)。
2. 然后,通过读取目标
文件
的头部信息,确定该二进制库的字节顺序。如果是大端字节顺序,则表示该二进制库在
Unix
上是以大端方式编译的;如果是小端字节顺序,则表示该二进制库在
Unix
上是以小端方式编译的。
3. 如果目标
文件
的字节顺序与
Linux
的字节顺序相同(即
Unix
和
Linux
都是大端或者都是小端),则无需进行转换,可以直接在
Linux
上使用。
4. 如果目标
文件
的字节顺序与
Linux
的字节顺序不同,则需要进行字节顺序转换。可以使用相关的函数(如htons、ntohs、htonl、ntohl等)对二进制库中的数据进行转换。这些函数可以在网络编程中使用,用于大端与小端字节顺序的转换。
5. 最后,将转换后的二进制库在
Linux
系统
上进行编译和链接,以生
成
可执行
文件
或库
文件
。
通过以上步骤,就可以将
Unix
上的二进制库转换
成
Linux
上的相应格式,实现大小端的兼容。
wugj03:
拦截系统调用
wugj03: