go实现整型的二进制转化
go中已经实现了int->bin的转化函数,我这里只是化过程逻辑的实现,至于原理我就假设大家都知道了
本案例只考虑 int->bin 的转化
包含了正整数,负整数,0 的转化
package main import (
"fmt"
"strconv"
) //bin表示转化后的位数
func convertToBin(n int,bin int) string{
var b string
switch {
case n==:
for i:=;i<bin;i++{
b+=""
}
case n>:
//strcov.Itoa 将 1 转为 "1" , string(1)直接转为assic码
for ; n>;n/={
b=strconv.Itoa(n%)+b
}
//加0
j:=bin-len(b)
for i:=;i<j;i++{
b=""+b
}
case n<:
n=n*-
// fmt.Println("变为整数:",n)
s:=convertToBin(n,bin)
// fmt.Println("bin:",s)
//取反
for i:=;i<len(s);i++{
if s[i:i+]==""{
b+=""
}else{
b+=""
}
}
// fmt.Println("~bin :",b)
//转化为整形,之后加1 这里必须要64,否则在转化过程中可能会超出范围
n,err :=strconv.ParseInt(b,,)
if err!=nil{
fmt.Println(err)
}
//转为bin
//+1
b=convertToBin(int(n+),bin)
}
return b
} func main(){
fmt.Println(
convertToBin(,), //
convertToBin(,), //
convertToBin(,),
convertToBin(,),
convertToBin(,),
convertToBin(-,),
convertToBin(-,),
)
}
结果 :
5 13 11111 0 1 -5 -11111
00000101
比如-11111的转化:
变为整数:
bin:
~bin :
结果:1010010011001
比如-1的转化:
变为整数:
bin:
~bin : 11111110
结果:
go实现整型的二进制转化的更多相关文章
- Number (int float bool complex)--》int 整型、二进制整型、八进制整型、十六进制整型
# ### Number (int float bool complex) # (1) int 整型 (正整数 0 负整数) intvar = 15 print(intvar) intvar = 0 ...
- 小白学python之整型,布尔值,十进制二进制转换和字符串详解for循环!
整型与字符串转化 十进制转二进制. python2,存在int 整型和long(长整型),在python3里就是int/获取的是浮点数 小数 print(bin(15)) 这样可以通过代码来计算十进制 ...
- Java中二进制数与整型之间的转换
import java.io.*; public class Test{ /** * 二进制与整型之间的转换 * @param args * @throws IOException */ public ...
- 2016年11月3日JS脚本简介数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6.布尔型数据:bool 7.对象类型:object 8.二进制:binary 语言类型: 1.强类型语言:c++ c c# java 2.弱类型语
数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6 ...
- java中表示二进制、八进制、十进制、十六进制,double、float、整型
java里不能这样表示二进制,只能是 8,10,16进制 8: 前置 0 10: 不需前置 16: 前置 0x 或者 0X double:2 ...
- __c语言__整型、实型的存储(十进制转二进制)
float 和 double 类型数据在内存中的存储方法 无符号整型采用32位编码,带符号整型数采用1个符号位31位底数编码: 单精度数据采用了1位符号位,8位阶码,23位尾数的编码: 双精度数据采用 ...
- php 怎样将有范围的ip转化为整型范围
php中将IP转换成整型的函数ip2long()容易出现问题,在IP比较大的情况下,会变成负数.如下: <?php $ip = "192.168.1.2"; $ip_n = ...
- java由字符型强制转化为整型例题
此Java程序依次输出参数,参数类型为字符型,要求更改程序,使得字符型强制转化为整形,并将这些整数相加,最后输出总和. 原程序: package demo; public class CommandP ...
- Long.parseLong(String s) 其中s必须是数字形式的字符串,才能运用该函数转化为长整型。
public class ConverTo { public static void main(String [] args) { String numberIn =args[0]; convertN ...
随机推荐
- vue的provide和inject特性
由来 组件之间的通信可以通过props和$emit的方式进行通信,但是如果组件之间的关系非常复杂的话,通过以上的方式会很麻烦,并且程序会非常脆弱,没有建中性可言. 在==vue2.2.0 中新增pro ...
- 【带着canvas去流浪(10)】文字烟花
目录 一. 文字烟花 二. 动画原理 2.1 像素操作 2.2 烟花生成算法 2.3 计时器 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址 ...
- Oracle数据库之第四篇
/* 授权命令 grant 权限 to 用户 授权可以授予多个权限 grant connect,resource to baidu 收回权限 revoke 权限 from 用户 revoke dba ...
- 简约清新日系你好五月通用PPT模板推荐
模版来源:http://ppt.dede58.com/peixunyanjiang/26488.html
- vue-cli 项目启动过程分析
启动时没有加入路由 先npm run dev 把项目启动起来.看到 这个熟悉的界面. 首先看到: 这是项目的入口文件,一般引用其他的js,也都是在这个文件进行引用的. 渲染的时候,就是对这个id=&q ...
- 应用DEV第三方界面控件制作批量添加水印程序
本次应用DevExpress和C#语言制作了一个批量添加水印的程序,看界面效果图: 界面中既可以进行文字水印添加,也可以图片水印添加,同时还可以对水印的位置进行设置,比较实用! 文字水印的具体添加情况 ...
- 【三】Gradle中的Task
gradle中,最经常被使用的,一个task,一个是dependencies 1.Task声明 task默认是DefaultTask类, Task中有两个属性 group description,最佳 ...
- iTerm2 使用代理
0x00 事件 因为 brew 安装极慢,所以需要 iTerm2 设置代理解决速度问题. 0x01 解决 代理软件开启本地 Http 端口: iTerm 设置代理: $ vim ~/.zshrc # ...
- Hive静态分区和动态分区,对应Mysql中的元数据信息
静态分区: 手动指定分区加载数据,就是常说的静态分区的使用.但是在日常工作中用的比较多的是动态分区. 创建: hive> create table order_mulit_partition( ...
- Django2.1.1与xadmin0.6.0遇到的坑(一)
(1)django2.0把from django.core.urlresolvers修改成了django.urls 异常信息: ModuleNotFoundError: No module named ...