zoukankan      html  css  js  c++  java
  • 求二进制表示

    package main

    import (
    "fmt"
    "math"
    )

    func main(){
    binStr := subtractionOfPowers(1234321)
    fmt.Println(binStr)

    binStr = div2(1234321)
    fmt.Println(binStr)
    

    }

    func subtractionOfPowers(n int) string{

    result := ""
    
    maxN := 0
    for i:=0;;i++{
    	if n < int(math.Pow(2.0, float64(i))) {
    		maxN = i
    		break
    	}
    }
    
    if maxN>1{
    	result = ""
    }
    rem:=n
    for j:=maxN-1; j>0;j--{
    	temp := rem - int(math.Pow(2.0, float64(j)))
    	//fmt.Println(rem, int(math.Pow(2.0, float64(j))), temp)
    	if rem>=int(math.Pow(2.0, float64(j))){
    		result = result + "1"
    		rem = temp
    	} else {
    		result = result + "0"
    	}
    	
    	//fmt.Printf("maxN=%s
    ", result)
    }
    if n%2 == 0{
    	result += "0"
    } else {
    	result += "1"
    }
    
    return result
    

    }

    func div2(x int) string{
    result := ""

    n := x
    for {
    	
    	if n%2 == 0 {
    		result = "0" + result
    	} else {
    		result = "1" + result
    	}
    	n = n/2
    	if n <= 0 {
    		break
    	}
    }
    
    return result
    

    }

  • 相关阅读:
    Log4j2_java日志使用
    Log4j_java日志使用
    DB_常用知识
    Oracle_内置信息
    Loadrunner使用时IE浏览器打不开怎么办
    性能测试
    python条件语句及循环语句
    计算机网络
    单元测试
    边界条件测试
  • 原文地址:https://www.cnblogs.com/yasepix/p/11422823.html
Copyright © 2011-2022 走看看