串口通信中传输单位为byte,一个byte占用八位/8bit

常用的方法

1.一个Int转成一个byte 直接调用Int.toByte()方法

看如下直接转换

 var num = 23var num2Byte = num.toByte()println("mytest num $num num2Byte$num2Byte")

结果一切正常

让这里的num=128结果如何?

转成byte结果变成了-1 具体是什么原因各位可以去补充下有趣的原码 反码 补码的相关知识。
所以一个int要想不丢失精度的情况转成byte这个int取值范围必须是**[-128-127]**之间

2.一个byte转成一个int 直接调用Byte.toByte()方法

 var byteNum = Byte.MAX_VALUEvar byteNum2Int = byteNum.toInt()println("mytest byteNum $byteNum byteNum2Int$byteNum2Int")

3.一个Int转成4个字节的byte数组

   private fun intToByteArray4(num: Int): ByteArray {var byteArray = ByteArray(4)var highH = ((num shr 24) and 0xff).toByte()var highL = ((num shr 16) and 0xff).toByte()var LowH = ((num shr 8) and 0xff).toByte()var LowL = (num and 0xff).toByte()byteArray[0] = highHbyteArray[1] = highLbyteArray[2] = LowHbyteArray[3] = LowLreturn byteArray}

传入88

传入Int.MAX_VALUE 2147483647

这里为什么是[127,-1,-1,-1]请读者自行思考

4.一个Int转成2个字节的byte数组

 private fun intToByteArray2(num: Int): ByteArray {var byteArray = ByteArray(2)var LowH = ((num shr 8) and 0xff).toByte()var LowL = (num and 0xff).toByte()byteArray[0] = LowHbyteArray[1] = LowLreturn byteArray}

4.将字节数组转成一个Int

ByteBuffer.wrap(bytes).int

kotlin中Int Byte的相互转换,常用相关推荐

  1. Kotlin中的byte转int

    val byteArrray=byteArrayOf(0xE5.toByte(), 0x22, 0xA5.toByte(), 0x03, 0x00) val intData=(value[2].toI ...

  2. Kotlin中Int和 Int? 以及 IntArray 和 Array的问题

    开篇 之前文章中提到过,kotlin 的形参如果不加?那么会默认为不为空. 这个小知识点在 kotlin 编译的时候其实很有用的,我们拿java中的 int和 Integer 来举例. Integer ...

  3. C++中 int char 的相互转换

    特别注意char 只能处理单个字符如,1,2,3到9等,不能接收11,11等多位数字 // 取到一个char的ASCII值 char c='A'; int i=c; printf("%d&q ...

  4. Kotlin中常用集合的使用

    集合在程序中的比例的很重的,Kotlin针对集合进行了更加简洁和有效的封装,这边文章就简单的介绍一下list,map,set这三个最常用集合的使用. 首先在Kotlin中,明确区分了集合的只读和可变. ...

  5. java中三种转string的方法_java中int,char,string三种类型的相互转换

    如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...

  6. java编程int和byte的用法_Java中的Byte Array和Int转换

    Java中的Byte Array和Int转换 我有这两个函数有一些困难: byteArrayToInt和intToByteArray . 问题是,如果我使用另一个来得到另一个结果,结果是不同的,你可以 ...

  7. 【C#串口编程计划】通信协议解析 -- byte[]与常用类型的转换

    刚刚完成一个串口通讯的系统.目前在把串口通信的代码整合到团队的类库中(把串口通信与网口Soket通讯整合起来,后面只需要配置参数,就可实现网络与串口通讯的转换),故C#串口编程计划的最后一篇图文&qu ...

  8. Kotlin 中的 run、let、with、apply、also、takeIf、takeUnless 语法糖使用和原理分析

    这些Kotlin的语法糖函数经常用,但也很容易搞混,所以转载一下,若混了可以回来再看 转载自公众号:纸上浅谈 正文: 在 Kotlin 有一些可以简化代码的语法糖,比如 run.let.with.ap ...

  9. Kotlin中?和!!的区别

    很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在Kotlin中?和!!均是和NullPointerException有关系,可他们的区别到底是什 ...

最新文章

  1. 红警2Linux版本
  2. linux测试nvme性能,使用Python测试NVMe吞吐量
  3. N4 接口解耦的可行性试验
  4. 在text html模版中写js,如何利用模板将HTML从JavaScript中抽离
  5. python基础练习(一)
  6. 父类的静态方法能否被子类重写?
  7. 买什么数据结构与算法,这里有:动态图解十大经典排序算法(含JAVA代码实现)
  8. 我慌了!技术经理问为什么要分布式存储......
  9. 优酷在多模态内容理解上的研究及应用
  10. 后疫情时代,这家在线教育机构如何乘“云”而上
  11. django实现搜索功能
  12. Microsoft ASP.NET 4 Step by Step
  13. js+ajax编码三级联动
  14. HTML基础-DAY1
  15. 第二证券|热门板块再次爆发,早盘主力抢筹超10亿元!
  16. 2019年第八届java B组蓝桥杯省赛真题
  17. 新手零基础:飞桨代码中关于图片路径读取和资源解压报错
  18. 配置华为s系列交换机mode lacp
  19. C语言中求两数最大公约数的三种方法
  20. 电子元器件[1]——晶振

热门文章

  1. 事业单位招 计算机面试实践技能操作,2019山东事业单位卫生类招聘面试实践技能概论...
  2. Win10系统下Visio安装失败问题
  3. Plate impulse response spatial interpolation with sub-Nyquist sampling
  4. Citrix Port(常用端口)
  5. 本年度最成功科技IPO企业之一:Twilio股票一月暴涨167%
  6. POJ 1201 amp; HDU1384 amp; ZOJ 1508 Intervals(差分约束+spfa 求最长路径)
  7. 韩国讨论到 2020 年拥抱开源操作系统
  8. java 常见中文乱码问题解决
  9. JSP页面空指针异常调错办法之weblogic
  10. 如果在安装32位oracle 客户端组件时的情况下以64位模式运行,将出现问题