当前位置: 首页 > news >正文

怎么做网站更新和维护代理龙华网站建设

怎么做网站更新和维护,代理龙华网站建设,合肥网站优化步骤,云服务器如何搭建前言 本文是基于rust#xff0c;对16进制、32位浮点数之间的互相转换的一个简单示例。 环境配置 系统#xff1a;windows 平台#xff1a;visual studio code 语言#xff1a;rust 库#xff1a;hex 关键依赖 hex0.4.3对于字符串与16进制之间的互相转换对16进制、32位浮点数之间的互相转换的一个简单示例。 环境配置 系统windows 平台visual studio code 语言rust 库hex 关键依赖 hex0.4.3对于字符串与16进制之间的互相转换我们使用hex这个crate。所以需要添加hex依赖在toml文件中手动添加如上或者使用cargo添加 cargo add hex 也可以指定版本 cargo add hex0.4.3 数字字符串转字节数组 为了方便管理我们可以新建一个rust文件命名为hexconvert.rs。然后我们在其中编写功能函数首先是string_to_hex /// /// 字符串转16进制 /// /// 例01030002 - [0x01,0x03,0x00,0x02] pub fn string_to_hex(s:String) - Vecu8 {let input_rehex::decode(s);if let Ok(input_hex) input_re{return input_hex} else {return vec![]} }hex的函数decode的作用是解码字符串将对应的数字字符串解码为字节数组字节数组就是我们所需要的原始数据可以显示为各种进制的数值当然也包括16进制。 字节数组转32位浮点数 rust中有自带的处理数值的函数对于32位浮点数即f32数值类型可以使用from_be_bytes或者from_le_bytes来从字节数组转换。 /// /// 16进制转32位浮点数 /// /// Example 1: /// /// [0x41,0x48,0x00,0x00] - 12.5(mode is big endian) /// /// [0x00,0x00,0x48,0x41] - 12.5(mode is little endian) /// /// Example 2: /// /// [0x41,0x48,0x00,0x00,...] - ???(长度判断) /// /// pub fn hex_to_float_frombytesT: AsRef[u8](hex: T, mode: Optionstr) - Optionf32 {let bytes hex.as_ref();if bytes.len() 4 {let mut array [0u8; 4];array.copy_from_slice(bytes);match mode.unwrap_or(big) {big Some(f32::from_be_bytes(array)),little Some(f32::from_le_bytes(array)),_ {Some(f32::from_ne_bytes(array))}}} else {println!(err:数组长度异常);None} }在上面的函数中我们对传入的字节数组进行了简单判断因为32位浮点数长度是4个字节所以字节长度如果不对那么转换的数值显然也是错误的。另外不同的终端控制器或者发送设备其字节端序也不一定一样有大端和小端之分即big endian和little endian也就是be和le。 所以我们还添加了一个mode参数用于判断端序。 浮点数转字符串 将一个浮点型数值转为等值的字符串或者16进制字符串我们可以使用hex的encode函数。 /// /// 32位浮点数转字符串 /// /// 例12.5 - 12.5(to_hex is false) /// /// 例12.5 - 0x41,0x48,0x00,0x00(to_hex is true) #[allow(unused)] pub fn float_to_string(f:f32,mode:Optionstr,to_hex:bool) - String {let mut s:StringString::new();if to_hex false {sformat!({},f)} else {match mode.unwrap_or(big) {big {let hexhex::encode(f.to_be_bytes());sformat!({},hex)},little {let hexhex::encode(f.to_le_bytes());sformat!({},hex)},_ {let hexhex::encode(f.to_ne_bytes());sformat!({},hex)}}}return s }此处我们增加了to_hex来选择是直接转为等值字符还是转为等值16进制字符。 下面是一个实例演示我们将通过终端输入一个字符串00004841这是小端序的浮点数12.5。 我们使用小端序解码然后是大端序再转会字符串看看效果 rust字符串与字节数组转换演示
http://www.zqtcl.cn/news/915717/

相关文章:

  • 做网站用什么编程软件php网站中水印怎么做
  • p2网站模板做视频官方网站
  • 网站建设季度考核评价工作php做网站有哪些优点
  • 设计某网站的登录和注册程序凡科建站添加文章
  • wordpress 批量打印wordpress 数据库优化
  • 购物网站开发设计类图网络架构指什么
  • 学校网站建设方法wordpress 调用用户名
  • 深圳创建网站公司哈尔滨全员核酸检测
  • 网站开发实施计划宠物网站 html模板
  • 在线生成手机网站商城网站平台怎么做
  • 深圳专业企业网站制作哪家好写作网站新手
  • 福建泉州曾明军的网站桥梁建设期刊的投稿网站
  • 国内设计网站公司wordpress电视主题下载
  • 自贡网站开发河南省建设网站首页
  • 昆明网站推广优化服务器代理
  • wordpress 网站统计插件福建省建设工程职业注册网站
  • 手机移动端网站是什么上海网站设计服务商
  • 多语言网站建设推广孝感门户网
  • 外贸soho 网站建设旅游电子商务网站建设调查问卷
  • 北京专业制作网站seo优化技术教程
  • 网站建设最低多少钱珠海在线网站制作公司
  • 网站建设完成之后要索取哪些医疗网站建设服务
  • 长沙招聘网站有哪些深圳seo论坛
  • 网站如何做网络推广山西住房建设厅官方网站
  • 优化排名推广技术网站平面设计创意
  • 山西网站建设哪家有tv域名的网站
  • 个人博客网站怎么赚钱公司招聘一个网站建设来做推广
  • 功能型网站有哪些中国门户网站有哪些
  • 网站制作教程步骤软件公司怎么赚钱
  • 看世界杯网址网站更新seo