c++怎么实现数的转换

本文小编为大家详细介绍“c++怎么实现数的转换”,内容详细,步骤清晰,细节处理妥当,希望这篇“c++怎么实现数的转换”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

创新互联2013年至今,先为善左等服务建站,善左等地企业,进行企业商务咨询服务。为善左企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

算法:

这类算法的核心,在于负数的处理,也就是用到补码的转换,num = ((-num)^0xffffffff)+1。

对于不同进制的转换,采用取余数的方式,来进行操作。

对于不同数的转换,利用 a^b 来获取不同的数值,再通过a&(a-1)来将最右边的1清空来操作。

题目1: 数字转换为十六进制

代码实现:

func toHex(num int) string {    // 利用数组存储16位数    ss := []string{"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}    res := ""    a := []string{}    if num ==0 {        return "0"    }    if num <0 {        // 负数转换为正数,采用补码的形式        num = ((-num)^0xffffffff)+1    }    for num != 0 {        // 通过偏移4为的方式来计算每个十六位的数值,八进制的话是0x7        tmp := num&0xf        a = append(a, ss[tmp])        num = num>>4    }    // 这里位数,从左到右是高位到低位,所以要转换    for i:= len(a)-1;i>=0;i-- {        res += a[i]    }    return res}

题目2:整数转换

代码实现:

func convertInteger(A int, B int) int {    // 负数转换成补码    if A < 0 {         A = ((-A)^0xffffffff)+1    }    if B < 0 {         B = ((-B)^0xffffffff)+1    }    t := A^B // 用来计算出A和B不同的位数1    c:=0    for t != 0{        t &= (t-1) // 用来将最右边的1设置为0        c++    }    return c}

读到这里,这篇“c++怎么实现数的转换”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。


本文题目:c++怎么实现数的转换
文章起源:http://bzwzjz.com/article/goosde.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 营销型网站建设 品牌网站建设 高端网站设计推广 手机网站制作 温江网站设计 成都网站建设流程 成都网站建设公司 上市集团网站建设 成都响应式网站建设 网站制作公司 高端定制网站设计 成都网站制作 企业网站建设 网站建设 成都网站制作 成都网站建设公司 成都网站制作 成都网站建设 成都网站设计 成都网站建设 手机网站制作设计 重庆手机网站建设