栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kotlin中二进制、八进制、十六进制间的相互转换

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kotlin中二进制、八进制、十六进制间的相互转换

Kotlin中进制之间的相互转换:

文本主要记录并描述Kotlin中二进制、八进制、十六进制之间的转换方法


二进制和十进制之间的转换 :

01.二进制转换为十进制:采用取余的方式获取位数,并利用Math.pow()方法进行计算

    //二进制转换为十进制
    val num: Long = 1000
    val value = BinaryToHex(num)
    Log.i("hy55", "value==$value")
    val number = HexToBinary(10)
    Log.i("hy55", "number==$number")
    private fun BinaryToDecimal(value: Long): Int {
        var cValue = value
        var decimalNumber = 0
        var remainder: Long
        var count = 0
        while(cValue.toInt() != 0) {
            remainder = cValue % 10
            cValue /= 10
            //Math.pow()获取2的count.toDouble()次方
            decimalNumber += (remainder * Math.pow(2.0, count.toDouble())).toInt()
            Log.i("BinaryToDecimal", "decimalNumber==$decimalNumber")
            ++count
        }
        return decimalNumber
    }

02.十进制转换为二进制:采用取余的方式获取位数

    private fun DecimalToBinary(value: Int): Long {
        var cValue = value
        var remainder: Int
        var binaryNumber: Long = 0
        var count = 1
        while(cValue != 0) {
            remainder = cValue % 2
            cValue /= 2
            binaryNumber += (remainder * count).toLong()
            Log.i("DecimalToBinary", "remainder==$remainder")
            count *= 10
        }
        return binaryNumber
    }

二进制和八进制之间的转换:

01.二进制转换为八进制:先转换为十进制

    //二进制转换为八进制
    private fun BinaryToOctal(value: Long): Int {
        var binaryNumber = value
        var octalNumber = 0
        var decimalNumber = 0
        var count = 0
        //二进制转换为十进制
        while(binaryNumber.toInt() != 0) {
            decimalNumber += (binaryNumber % 10 * Math.pow(2.0, count.toDouble())).toInt()
            ++count
            binaryNumber /= 10
        }
        count = 1
        //十进制转八进制
        while (decimalNumber != 0) {
            octalNumber += decimalNumber % 8 * count
            decimalNumber /= 8
            count *= 10
        }
        return octalNumber
    }

02.八进制转换为二进制

    //八进制转换为二进制
    private fun OctalToBinary(value: Int): Long{
        var octalNumber = value
        var decimalNumber = 0
        var count = 0
        var binaryNumber: Long = 0
        //八进制转十进制
        while (octalNumber != 0) {
            decimalNumber += (octalNumber % 10 * Math.pow(8.0, count.toDouble())).toInt()
            ++count
            octalNumber /= 10
        }

        count = 1
        //十进制转二进制
        while (decimalNumber != 0) {
            binaryNumber += (decimalNumber % 2 * count).toLong()
            decimalNumber /= 2
            count *= 10
        }
        return binaryNumber
    }

二进制和十六进制之间的转换:

01.二进制转换为十六进制:先转换为十进制

    //二进制转换为十六进制
    private fun BinaryToHex(value: Long): Int {
        var binaryNumber = value
        var HexNumber = 0
        var decimalNumber = 0
        var count = 0
        //二进制转换为十进制
        while(binaryNumber.toInt() != 0) {
            decimalNumber += (binaryNumber % 10 * Math.pow(2.0, count.toDouble())).toInt()
            ++count
            binaryNumber /= 10
        }
        count = 1
        //十进制转十六进制
        while (decimalNumber != 0) {
            HexNumber += decimalNumber % 16 * count
            decimalNumber /= 16
            count *= 10
        }
        return HexNumber
    }

02.十六进制转换为二进制:

    //十六进制转换为二进制
    private fun HexToBinary(value: Int): Long {
        var HexNumber = value
        var decimalNumber = 0
        var count = 0
        var binaryNumber: Long = 0
        //十六进制转十进制
        while (HexNumber != 0) {
            decimalNumber += (HexNumber % 10 * Math.pow(16.0, count.toDouble())).toInt()
            ++count
            HexNumber /= 10
        }

        count = 1
        //十进制转二进制
        while (decimalNumber != 0) {
            binaryNumber += (decimalNumber % 2 * count).toLong()
            decimalNumber /= 2
            count *= 10
        }
        return binaryNumber
    }

总结:

01.重点掌握二进制和十进制之间的转换
02.灵活运用Math.pow()方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/732483.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号