十六进制

string与十六进制byte互转

倾然丶 夕夏残阳落幕 提交于 2019-11-29 12:19:34
废话不多说,请看: /** * 字符串转换成十六进制字符串 * @param String str 待转换的ASCII字符串 * @return String 每个Byte之间空格分隔,如: [61 6C 6B] */ public static String str2HexStr(String str) { char[] chars = "0123456789ABCDEF".toCharArray(); StringBuilder sb = new StringBuilder(""); byte[] bs = str.getBytes(); int bit; for (int i = 0; i < bs.length; i++) { bit = (bs[i] & 0x0f0) >> 4; sb.append(chars[bit]); bit = bs[i] & 0x0f; sb.append(chars[bit]); sb.append(' '); } return sb.toString().trim(); } /** * 十六进制转换字符串 * @param String str Byte字符串(Byte之间无分隔符 如:[616C6B]) * @return String 对应的字符串 */ public static String hexStr2Str(String

modbus通讯协议详解

荒凉一梦 提交于 2019-11-29 11:35:53
一、Modbus 协议简介     Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。Modbus通讯物理接口可以选用串口(包括RS232和RS485),也可以选择以太网口。其通信遵循以下的过程:   ● 主设备向从设备发送请求   ● 从设备分析并处理主设备的请求,然后向主设备发送结果   ● 如果出现任何差错,从设备将返回一个异常功能码   此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。   当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构

Python编程笔记二进制、字符编码、数据类型

百般思念 提交于 2019-11-29 10:19:47
一、二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存储单位,1bytes缩写为1B 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 1024 GB 1PB = 1024 TB 1EB = 1024 PB 1ZB = 1024 EB 1YB = 1024 ZB 1BB = 1024 YB 二、字符编码 Unicode编码:国际标准字符集,它将世界的各种语言的每个字符定义个唯一的编码,以满足跨平台、跨语言的文本信息转换。Unicode(统一码、万国码)规定所有的字符和符号最少由16位来表示(2个字节),即2**16 = 65536. UTF-8 ,是对Unicode编码的压缩优化,它不在使用最少2个字节,而是将所有的字符和符号分类,ascii码中的内容用1个字节来保存,欧洲的字符用2个字节来保存,东亚的字符用3个字节保存。 windows 系统中文版默认编码是GBK MAC \Linux 系统默认编码是UTF-8 三、浮点数 浮点数 是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。包括整数和分数,包含有限小数和无线循环小数。 无限不循环的小数不是浮点数 整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的

05.data-type

让人想犯罪 __ 提交于 2019-11-29 08:36:15
title date 数据类型 2019-08-18 JavaScript | 数据类型 关于某些数据类型进行一些特性的介绍以及常用方法介绍。 目录摘要 基本类型方法 数字 Number parseInt 和 parseFloat 舍入方法 常量 字符串 String 查找子串 获取子串 基本类型方法 基本类型 是原始类型中的一种值。 在 JavaScript 中有 6 种基本类型: string 、 number 、 boolean 、 symbol 、 null 和 undefined 。 对象类型 能够存储多个值作为属性。 可以使用大括号 {} 创建对象 基本类型作为对象 除了null和undefined的基本类型可以调用一些方法,此时会临时创建一个包装对象,提供额外的功能,用完即销毁。实现“轻量级”特性。 如: str.toUpperCase() 、 num.toFixed(n) 、 num.toString(base) 数字 Number 科学记数法简写 10000 可以写作 1e4 其他进制 十六进制 0x 、八进制 0o 、二进制 0b ,其他进制使用parseInt转化为十进制。 parseInt 和 parseFloat 对于日常情况,我们经常遇到非纯数字的字符串,为了优雅地从中提取数字,可以使用 parseInt 和 parseFloat 函数 alert (

Visual Studio Code:以十六进制格式显示文件内容

旧城冷巷雨未停 提交于 2019-11-29 04:42:36
造冰箱的大熊猫@cnblogs 2019/9/4 发现Visual Studio Code很好用,无论是作为源代码编辑器还是文本编辑器在Win平台下用的都很不错。但有时候需要以十六进制格式查看数据文件的内容,使用VSCode打开这种文件时,提示“is binary or use an unsupported text encoding”。怎样以十六进制格式显示文件呢,有开发者在Visual Studio Marketplace提供了一个名为Hexdump for VSCode的插件(用Linux的小伙伴都知道hexdump)。 1)安装Hexdump:在VSCode中按下Ctrl+P,激活打开窗口,输入“ ext install slevesque.vscode-hexdump ”,VSCode自动安装该插件(需联网) 2)使用Hexdump:在VSCode的文件浏览窗口中选中待浏览的文件,点击鼠标右键,在弹出的菜单中选择“Show Hexdump”,这样该文件就会被打开并以以十六进制格式显示。 参考资料: - Hexdump for VSCode插件网页@Visual Studio Marketplace 来源: https://www.cnblogs.com/pandabang/p/11453850.html

WinDbg常用命令系列---内存查看d*

馋奶兔 提交于 2019-11-29 04:33:49
d*命令显示给定范围内的内存内容。 d{a|b|c|d|D|f|p|q|u|w|W} [Options] [Range] dy{b|d} [Options] [Range] d [Options] [Range] 参数: Options 指定一个或多个显示选项。可以包括以下任何选项,但不能指示多个/p*选项: /c Width :指定要在显示中使用的列数。如果省略此选项,则默认列数取决于显示类型。 /p :(仅限内核模式)使用物理内存地址进行显示。范围指定的范围将从物理内存而不是虚拟内存中获取。 /p[c] :(仅限内核模式)与/P相同,只是将读取缓存内存。必须包括c周围的括号。 /p[uc] :(仅限内核模式)与/P相同,只是将读取未缓存的内存。必须包括uc周围的括号 /p[wc] :(仅限内核模式)与/P相同,但写入组合内存将被读取。wc周围的支架必须包括在内。 Range 指定要显示的内存区域。如果省略范围,命令将显示从最后一个显示命令结束位置开始的内存。如果省略了范围并且没有使用以前的显示命令,则显示将从当前指令指针开始。 显示的每一行将包括行中第一个字节的地址,后面是该位置和后面位置的内存内容。如果省略范围,命令将显示从最后一个显示命令结束位置开始的内存。这允许您连续扫描内存。此命令的形式如下。dd、dD、dw和dW命令的第二个字符区分大小写

进制转换

大城市里の小女人 提交于 2019-11-29 04:18:18
十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。 二进制转十进制 方法为:把二进制数按权展开、相加即得十进制数。 二进制转八进制 方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。 八进制转成二进制 方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。 二进制转十六进制 方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。 十六进制转二进制 方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。 十进制转八进制或者十六进制有两种方法 第一:间接法—把十进制转成二进制,然后再由二进制转成八进制或者十六进制。这里不再做图片用法解释 第二:直接法—把十进制转八进制或者十六进制按照除8或者16取余,直到商为0为止。 八进制或者十六进制转成十进制 方法为:把八进制、十六进制数按权展开、相加即得十进制数。 八进制与十六进制之间的转换有两种方法 第一种:他们之间的转换可以先转成二进制然后再相互转换。 第二种:他们之间的转换可以先转成十进制然后再相互转换。 来源: https:/

python3 byte,int,str转换

南笙酒味 提交于 2019-11-28 22:44:21
1 # bytes 与 int 2 b=b'\x01\x02' 3 num=int.from_bytes(b,'little') 4 print('bytes转int:',num) 5 6 b1=num.to_bytes(2,'little') 7 print('int转bytes:',b1) 8 9 #bytes 与十六进制string 10 hs=''.join(['%02X' %x for x in b]) 11 print('bytes转十六进制字符串:',hs) 12 bs=bytes.fromhex(hs) 13 print('十六进制字符串转bytes:',bs) 14 # print(bytes.fromhex(hex(78)[2:])) 15 16 #int 与 string 17 s='abcd' 18 num=int(s,16) 19 print('字符串转int:',num) 20 print('int转十六进制字符串:',hex(num)) 输出: bytes转int: 513 int转bytes: b'\x01\x02' bytes转十六进制字符串: 0102 十六进制字符串转bytes: b'\x01\x02' 字符串转int: 43981 int转十六进制字符串: 0xabcd 其他转换: int(x [,base ]) 将x转换为一个整数 long

1.6进制转换

被刻印的时光 ゝ 提交于 2019-11-28 18:44:21
一、其他进制转十进制 1.先确定当前数字的位数,然后从右向左数,依次认为是低位到高位。 2.记下每位数字所在的位数 N( N 不是一个固定的数字,由当前所在位数决定 ) 3.取出每一位上的数字 m ,然后用这个 m 去乘以当前进制的 N-1 次方。( m 也不是固定 的,它就是当前位上所具有的数字 ) 4.将每位上的相乘结果进行相加,最后的和就是该数值所对应的十进制值。 列如:2进制11000 二、其他进制转二进制 1.十进制转二进制 (1)用这个十进制的数字除以 2 ,得到商和余数。 (2)判断商是否为 0,如果不是 0 则继续用这个商除去 2 (3)直到某一次商为 0 时结束,将这个除法过程中产生的余数反向排列 (4)最终的排列结果就是当前这个十进制转成二进制后的数值 例如:十进制24 2.8 进制/16 进制转二进制 (1)将八进制或十六制中的所有"基数"都转成二进制。(需要注意的就是八进制转二进制要写成三位,而十六进制要写在四位) (2)有了上述的二进制基数转换之后,当我们拿到一个具体的八进制或者十六进制数值之后我们只需要将其进行拼接就可以。 来源: https://blog.csdn.net/qq_41612292/article/details/100108701

使用gdb

这一生的挚爱 提交于 2019-11-28 15:43:59
1、设置断点,在源程序第16 行处 (gdb)break 16 Breakpoint 1 at 0x8048496: file tst.c, line 16. 2、设置断点,在函数func()入口处。 (gdb)break func Breakpoint 2 at 0x8048456: file tst.c, line 5. 3、查看断点信息。 (gdb)info break Num Type Disp Enb Address What 1 breakpoint keep y 0x08048496、 in main at tst.c:16 2 breakpoint keep y 0x08048456 in func at tst.c:5 4、 (gdb)run ——————运行程序 r (gdb)next ——————单条语句执行。 n (gdb)continue ——————继续运行程序 c 5、查看所有参数 (gdb)in all info local 查看当前变量 6、打印变量i 的值(gdb)print i p i $1 = 134513808 (gdb) p g_uiTblmIdSwitchControl $1 = -1 (gdb) p g_uiTblmLogSwitchControl = 1 $2 = 1 (gdb) p g_uiTblmIdSwitchControl