kotlin中Int Byte的相互转换,常用
串口通信中传输单位为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的相互转换,常用相关推荐
- Kotlin中的byte转int
val byteArrray=byteArrayOf(0xE5.toByte(), 0x22, 0xA5.toByte(), 0x03, 0x00) val intData=(value[2].toI ...
- Kotlin中Int和 Int? 以及 IntArray 和 Array的问题
开篇 之前文章中提到过,kotlin 的形参如果不加?那么会默认为不为空. 这个小知识点在 kotlin 编译的时候其实很有用的,我们拿java中的 int和 Integer 来举例. Integer ...
- C++中 int char 的相互转换
特别注意char 只能处理单个字符如,1,2,3到9等,不能接收11,11等多位数字 // 取到一个char的ASCII值 char c='A'; int i=c; printf("%d&q ...
- Kotlin中常用集合的使用
集合在程序中的比例的很重的,Kotlin针对集合进行了更加简洁和有效的封装,这边文章就简单的介绍一下list,map,set这三个最常用集合的使用. 首先在Kotlin中,明确区分了集合的只读和可变. ...
- java中三种转string的方法_java中int,char,string三种类型的相互转换
如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...
- java编程int和byte的用法_Java中的Byte Array和Int转换
Java中的Byte Array和Int转换 我有这两个函数有一些困难: byteArrayToInt和intToByteArray . 问题是,如果我使用另一个来得到另一个结果,结果是不同的,你可以 ...
- 【C#串口编程计划】通信协议解析 -- byte[]与常用类型的转换
刚刚完成一个串口通讯的系统.目前在把串口通信的代码整合到团队的类库中(把串口通信与网口Soket通讯整合起来,后面只需要配置参数,就可实现网络与串口通讯的转换),故C#串口编程计划的最后一篇图文&qu ...
- Kotlin 中的 run、let、with、apply、also、takeIf、takeUnless 语法糖使用和原理分析
这些Kotlin的语法糖函数经常用,但也很容易搞混,所以转载一下,若混了可以回来再看 转载自公众号:纸上浅谈 正文: 在 Kotlin 有一些可以简化代码的语法糖,比如 run.let.with.ap ...
- Kotlin中?和!!的区别
很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在Kotlin中?和!!均是和NullPointerException有关系,可他们的区别到底是什 ...
最新文章
- 红警2Linux版本
- linux测试nvme性能,使用Python测试NVMe吞吐量
- N4 接口解耦的可行性试验
- 在text html模版中写js,如何利用模板将HTML从JavaScript中抽离
- python基础练习(一)
- 父类的静态方法能否被子类重写?
- 买什么数据结构与算法,这里有:动态图解十大经典排序算法(含JAVA代码实现)
- 我慌了!技术经理问为什么要分布式存储......
- 优酷在多模态内容理解上的研究及应用
- 后疫情时代,这家在线教育机构如何乘“云”而上
- django实现搜索功能
- Microsoft ASP.NET 4 Step by Step
- js+ajax编码三级联动
- HTML基础-DAY1
- 第二证券|热门板块再次爆发,早盘主力抢筹超10亿元!
- 2019年第八届java B组蓝桥杯省赛真题
- 新手零基础:飞桨代码中关于图片路径读取和资源解压报错
- 配置华为s系列交换机mode lacp
- C语言中求两数最大公约数的三种方法
- 电子元器件[1]——晶振
热门文章
- 事业单位招 计算机面试实践技能操作,2019山东事业单位卫生类招聘面试实践技能概论...
- Win10系统下Visio安装失败问题
- Plate impulse response spatial interpolation with sub-Nyquist sampling
- Citrix Port(常用端口)
- 本年度最成功科技IPO企业之一:Twilio股票一月暴涨167%
- POJ 1201 amp; HDU1384 amp; ZOJ 1508 Intervals(差分约束+spfa 求最长路径)
- 韩国讨论到 2020 年拥抱开源操作系统
- java 常见中文乱码问题解决
- JSP页面空指针异常调错办法之weblogic
- 如果在安装32位oracle 客户端组件时的情况下以64位模式运行,将出现问题