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()方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kotlin ,你可以使用以下函数进行进制转换: 1. 十进制二进制:`Integer.toBinaryString(num)` 2. 十进制八进制:`Integer.toOctalString(num)` 3. 十进制十六进制:`Integer.toHexString(num)` 4. 二进制十进制:`Integer.parseInt(binaryStr, 2)` 5. 八进制十进制:`Integer.parseInt(octalStr, 8)` 6. 十六进制十进制:`Integer.parseInt(hexStr, 16)` 其,`num` 是一个十进制数,`binaryStr` 是一个二进制字符串,`octalStr` 是一个八进制字符串,`hexStr` 是一个十六进制字符串。 以下是一个示例代码,演示如何使用这些函数进行进制转换: ```kotlin fun main() { val num = 42 // 十进制数 // 十进制二进制 val binary = Integer.toBinaryString(num) println("$num in binary is $binary") // 十进制八进制 val octal = Integer.toOctalString(num) println("$num in octal is $octal") // 十进制十六进制 val hex = Integer.toHexString(num) println("$num in hex is $hex") // 二进制十进制 val binaryStr = "101010" val decimalFromBinary = Integer.parseInt(binaryStr, 2) println("$binaryStr in decimal is $decimalFromBinary") // 八进制十进制 val octalStr = "52" val decimalFromOctal = Integer.parseInt(octalStr, 8) println("$octalStr in decimal is $decimalFromOctal") // 十六进制十进制 val hexStr = "2a" val decimalFromHex = Integer.parseInt(hexStr, 16) println("$hexStr in decimal is $decimalFromHex") } ``` 输出结果: ``` 42 in binary is 101010 42 in octal is 52 42 in hex is 2a 101010 in decimal is 42 52 in decimal is 42 2a in decimal is 42 ``` 在上面的代码,我们首先定义了一个十进制数 `num`,然后使用 `toBinaryString()`、`toOctalString()` 和 `toHexString()` 函数将其转换二进制八进制十六进制。接着,我们定义了三个字符串 `binaryStr`、`octalStr` 和 `hexStr`,分别代表一个二进制数、一个八进制数和一个十六进制数,然后使用 `parseInt()` 函数将它们转换为十进制数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值