Go语言中文网 为您找到相关结果 94

go语言 strconv.ParseInt 的例子

golang strconv.ParseInt 是将字符串转换为数字的函数,功能灰常之强大,看的我口水直流.func ParseInt(s string, base int, bitSize int) (i int64, err error)参数1 数字的字符串形式参数2 数字字符串的进制 比如二进制 八进制 十进制 十六进制参数3 返回结果的bit大小 也就是int8 int16 int32 int64代码: package main import ( "strconv" ) func main() { i, err := strconv.ParseInt("123", 10, 32) if err != nil { panic(err) } println(i) ...阅读全文

博文 2015-01-22 13:00:01 chuanheng

golang实现unicode码和中文之间的转换

将中文转换为unicode码,使用golang中的strconv包中的QuoteToASCII直接进行转换,将unicode码转换为中文就比较麻烦一点,先对unicode编码按\u进行分割,然后使用strconv.ParseInt,将16进制数字转换Int64,在使用fmt.Sprintf将数字转换为字符,最后将其连接在一起,这样就变成了中文字符串了。 参考代码如下: 1 package main 2 3 import ( 4 "fmt" 5 "strconv" 6 "strings" 7 ) 8 9 func main() { 10 sText := "中文" 11 textQuoted := strconv.QuoteToASCII(sText) 12 textUnquoted := t...阅读全文

博文 2016-06-29 02:00:01 borey

golang二进制bit位的常用操作

package main import ( "fmt" "github.com/imroc/biu" ) /** golang二进制bit位的常用操作,biu是一个转换二进制显示的库 mengdj@outlook.com */ func main() { var( /** 1个字节=8个二进制位,每种数据类型占用的字节数都不一样 注意位操作千万不要越界了,如某个类型占8个bit位,偏移时候不要超过这个范围 */ a uint8=30 ) //a输出结果:00011110 fmt.Println(biu.ToBinaryString(a)) /** 将某一位设置为1,例如设置第8位,从右向左数需要偏移7位,注意不要越界 1<<7=1000 0000 然后与a逻辑或|,偏移后的第8位为1,逻辑|...阅读全文

博文 2018-08-17 12:30:00 mengdejun

常用位操作技巧(Golang)

1,判断奇偶 for i := 0; i < 100; i++ { if i % 2 == 0 { println(i) } if i & 0x1 == 0 { println(i) } } 2,交换两个数 func Swap(a, b *int) { if *a^*b != 0 { temp := *a *a = *b *b = temp } } func Swap(a, b *int) { if *a^*b != 0 { *a = *a + *b *b = *a - *b *a = *a - *b } } func Swap(a, b *int) { if *a^*b != 0 { *a ^= *b *b ^= *a *a ^= *b } } 3,交换符号 func ExcangeSym...阅读全文

博文 2014-11-14 08:00:01 xlplbo

Golang二进制转换十进制代码

Golang二进制转换十进制代码,使用 container/list 实现出入栈操作,完成转换。 二进制转十进制的方法是:‍‍从右到左的取数值乘以2的N次幂,依次相加,N为数值在二进制中的位数。‍‍ package main /** 二进制转换成十进制 核心: 入栈、出栈、类型转换 sum += int(v-48) * int(math.Pow(2, N)) **/ import ( "container/list" "fmt" "math" ) func main() { stack := list.New() var input string var sum int var stnum, conum float64 = 0, 2 fmt.Printf("请输入一段二进制数字:") fmt...阅读全文

博文 2015-06-05 14:00:01 一曲

Go语言fmt.Printf的使用

Fmt包 import "fmt" 简介 ▾ Package fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C但更简单一些。 输出 格式: 一般: %v 基本格式的值。当输出结构体时,扩展标志(%+v)添加成员的名字。the value in a default format. when printing structs, the plus flag (%+v) adds field names %#v 值的Go语法表示。 %T 值的类型的Go语法表示。 %% 百分号。 布尔型: %t 值的true或false 整型: %b 二进制表示 %c 数值对应的Unicode编码字符 %d 十进制表示 %o 八进制表示 %q 单引号 %x 十六进制表示,...阅读全文

博文 2015-10-28 21:00:32 fyxichen

Go语言 操作二进制文件

二进制文件的内容: Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00000000 12 31 23 12 31 22 31 23 12 31 22 22 22 22 22 22 1# 1"1# 1"""""" 00000010 22 22 22 12 23 12 23 00 00 00 00 00 00 00 00 00 """ # # 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 0...阅读全文

博文 2015-06-17 23:02:25 king1076

golang(Go语言) byte/[]byte 与 二进制形式字符串 互转

效果 把某个字节或字节数组转换成字符串01的形式,一个字节用8个”0”或”1”字符表示。比如: byte(3) –> “00000011” []byte{1,2,3} –> “[00000001 00000010 00000011]” “[00000011 10000000]” –> []byte{0x3, 0x80} 开源库 biu 实际上我已经将其封装到一个开源库了(biu),其中的一个功能就能达到上述效果: //byte/[]byte -> string bs := []byte{1, 2, 3} s := biu.BytesToBinaryString(bs) fmt.Println(s) //[00000001 00000010 00000011] fmt.Println(biu....阅读全文

博文 2016-10-03 04:00:02 QQ245671051

golang 二进制转十进制实现方式

golang 二进制转十进制实现方式 直接上代码 package main import ( "fmt" "math" ) func StringToIntArray(input string) []int { output := []int{} for _, v := range input { output = append(output, int(v)) } for i, j := 0, len(output)-1; i < j; i, j = i+1, j-1 { output[i], output[j] = output[j], output[i] } return output } func getInput(input string) <-chan int { out := m...阅读全文

博文 2015-07-14 03:00:00 jerrychen

go语言序列化对象为二进制

package main import ( "bytes" "encoding/binary" "fmt" ) type Register struct { ACTION int32 SID int32 } func ExampleWrite() []byte { buf := new(bytes.Buffer) var info Register info.ACTION = 20004 info.SID = 6 err := binary.Write(buf, binary.LittleEndian, info) if err != nil { fmt.Println("binary.Write failed:", err) } fmt.Printf("% x\n", buf.Bytes(...阅读全文

博文 2015-06-17 23:07:25 body100123

深入理解GO时间处理(time.Time)

1. 前言时间包括时间值和时区, 没有包含时区信息的时间是不完整的、有歧义的. 和外界传递或解析时间数据时, 应当像HTTP协议或unix-timestamp那样, 使用没有时区歧义的格式, 如果使用某些没有包含时区的非标准的时间表示格式(如yyyy-mm-dd HH:MM:SS), 是有隐患的, 因为解析时会使用场景的默认设置, 如系统时区, 数据库默认时区可能引发事故. 确保服务器系统、数据库、应用程序使用统一的时区, 如果因为一些历史原因, 应用程序各自保持着不同时区, 那么编程时要小心检查代码, 知道时间数据在使用不同时区的程序之间交换时的行为. 第三节会详细解释go程序在不同场景下time.Time的行为. 2. Time的数据结构go1.9之前, time.Time的定义为 ty...阅读全文

博文 2017-12-18 05:57:14 hanjm

go语言编码规范

1.代码规范 类型标识例子 int i / I iCount、ICount bool b / B bShow、BShow string s / S sName、SName uint u / U uColor、UColor float f / F fPlace、FPlace pointer p / P *pName、*PName struct stc/Stc stcPerson、StcPerson array arr / Arr arrHero、ArrHero slice slc / Slc sliHero、SliHero map map / Map mapPerson、MapPerson const 全部大写 const PI float32 = 3.14 interface I IMyIn...阅读全文

博文 2014-10-04 19:26:47 fancyzhen

golang http content_type

1.如果没有指定content_type的话,http包会查看文件的前512 byte,从而推测文件类型。 2.常用类型为: text/html 返回网页格式。text/plain 返回文本格式,也就说不会解析html。application/octet-stream 一般都是二进制格式,可用来下载。(这个有点复杂,不是很清楚) image/***audio/***video/**...阅读全文

博文 2015-06-17 20:17:44 rufidmx

golang 二进制操作

http://blog.guoqiangti.com/?p=538 以前很少对二进制进行操作,在看effective go的时候,好像没有看到关于二进制操作符的说明.今天在看其他源码的时候,看到一些二进制操作符,不知道他的意思,所以就查查资料,温习一下. 按位或 | .| (按位或):【解义】对两个整数的二进制形式逐位进行逻辑或运算,原理为:1|0=1,0|0=0,1|1=1,0|1=1 等。 4|-5: 4的二进制形式为:00000000 00000000 00000000 00000100, -5的二进制形式为:11111111 11111111 11111111 11111011, 逐位进行逻辑或运算:11111111 11111111 11111111 11111111,即得到-1....阅读全文

博文 2016-03-16 09:00:02 leonpengweicn

golang使用 mongo

生成objectid i := bson.NewObjectId() c.Insert(bson.M{"_id": i, "foo": "bar"}) golang 使用 mongo gte lte 功能 searchErr = SearchReading(bson.M{"k": key, "t": bson.M{"$gte": start, "$lte": end}}, limit)不能直接写 searchErr = SearchReading(bson.M{"k": key, "t":'{"$gte": start, "$lte": end}'}, limit) 基础小工具 golang md5 计算 func genQueryMd5(str string) string { hash ...阅读全文

博文 2016-01-05 03:00:05 shenguanpu

go的protobuffer安装

windows环境下: 1.首先,必须先的有go,默认安装在了C:\Go 2.然后下载protoc,https://code.google.com/p/protobuf/downloads/list,下一个二进制文件即可,为了方便,可以直接放到C:\GO\bin里面 3.配置GOPATH,这个就是你go工程的地方,应该早配置好了,比如D:\project\xxx 4.cmd里运行go get -u code.google.com/p/goprotobuf/{proto,protoc-gen-go},貌似win下面比较坑,会报错,所以可以分开输入go get -u code.google.com/p/goprotobuf/proto和go get -u code.google.com/p/go...阅读全文

博文 2014-10-23 14:00:01 esrrhs

golang中使用MD5加密的两种方法

package main import ( "crypto/md5" "fmt" "io" ) func main() { str := "abc123" //方法一 data := []byte(str) has := md5.Sum(data) md5str1 := fmt.Sprintf("%x", has) //将[]byte转成16进制 fmt.Println(md5str1) //方法二 w := md5.New() io.WriteString(w, str) //将str写入到w中 md5str2: = fmt.Sprintf("%x", w.Sum(nil)) //w.Sum(nil)将w的hash转成[]byte格式 fmt.Println(mdtstr2) } 打印结果...阅读全文

博文 2017-03-05 13:56:04 skh2015java

golang 类型转换

仅作记录,以便以后用到时查看方便。 字符串与整形: //string to 10进制int64 i,err := strconv.ParseInt(string, 10, 64) //int64 to string fmt.Sprintf("%d",int64)//我一般用这种方式 s := strconv.FormatInt(int64,10)//查找资料后得知这种方式比较正规 //string to int i, err := strconv.Atoi(string) //int to string s := strconv.Itoa(int...阅读全文

博文 2016-04-11 21:00:02 u013401219

位运算计算(go语言)

符号 二进制表示 十进制表示 0110 6 1011 11 & 0010 (上下都是1的话才是1,否则是0) 前后顺序不管,类似加法:1+2=2+1 2 | 1111 (上下都是0的话才是0,否则是1) 前后顺序不管,类似加法:1+2=2+1 15 ^ 1101 (上下数字不一样的话才是1,一样的话是0)前后顺序不管,类似加法:1+2=2+1 13 &^ 0100 (下面的数字是1,则为0,下面的数字为0,则为上面的数字)前后顺序不同结果不同,类似减法:1-2不等于2-1 方法2:先将下面的1011取反为0100,将取反完的0100和上面0110进行&运算,也可得到0100 4 关于&^的计算 上面的数字是6,二进制表示为: 0 1 1 0 下面的数字是11,二进制表示为: 1 0 1 1 ...阅读全文

博文 2014-10-04 19:26:44 waynehu

Go by Example: Hello World

我们第一个程序将打印出经典消息“Hello world”。这里是全部的源码 package main import "fmt" func main() { fmt.Println("hello world") } 为了运行程序,将代码写入 hello-world.go文件。使用go run 命令执行。$ go run hello-world.go hello world 有时候我们想要将我们的程序编译出二进制程序。我们可以使用go build命令实现该功能。 $ go build hello-world.go $ ls hello-world hello-world.go 我们可以直接执行这个编译好的二进制文件。$ ./hello-world hello world现在我们会运行和编译一个基...阅读全文

博文 2014-11-18 21:00:01 codemanship

常用位操作技巧(Golang)

1,判断奇偶 for i := 0; i < 100; i++ { if i % 2 == 0 { println(i) } if i & 0x1 == 0 { println(i) } } 2,交换两个数 func Swap(a, b *int) { if *a^*b != 0 { temp := *a *a = *b *b = temp } } func Swap(a, b *int) { if *a^*b != 0 { *a = *a + *b *b = *a - *b *a = *a - *b } } func Swap(a, b *int) { if *a^*b != 0 { *a ^= *b *b ^= *a *a ^= *b } } 3,交换符号 func ExcangeSym...阅读全文

博文 2014-11-14 14:00:01 seago123

golang printf中的%c,%d,%u.都分别代表输出的是什么类型的?

%表示格式化字符串输出目前printf支持以下格式的输出,例如:printf("%c",a);输出单个字符。printf("%d",a);输出十进制整数。printf("%f",a);输出十进制浮点数.printf("%o",a);输出八进制数。printf("%s",a);输出字符串。printf("%u",a);输出无符号十进制数。printf("%x",a);输出十六进制数...阅读全文

博文 2017-07-10 08:07:47 Robinbing

【Leetcode】:Counting Bits问题 in Go语言

Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array. Example: For num = 5 you should return [0,1,1,2,1,2]. Follow up: It is very easy to come up with a solution with run time O(n*sizeof(integer)). But can you do it in linear time...阅读全文

博文 2016-04-14 21:00:02 u013564276

go语言示例:hello world

go语言示例:hello world 我们的第一个例子是经典的"hello world".这里是全部代码。 Plain Text code ? 1 2 3 4 5 package main import "fmt" func main() { fmt.Println("hello world") } 为了运行这个程序。我们把程序放到hello-world.go 文件中,并运行go run 命令。 $ go run hello-world.go hello world 有时候我们为了生成二进制文件。我们可以用go build命令。 $ go build hello-world.go $ ls hello-world hello-world.go 然后我们可以直接执行这个二进制文件。 $ ./h...阅读全文

博文 2014-11-13 18:00:01 xming4321

Golang时区设置

在部署PHP项目的时候,在php的入口文件添加一行: date_default_timezone_set('PRC'); 时间格式化输出的时区为东八区北京时间,无需关系系统所在时区。 在Go语言上,go语言的time.Now()返回的是当地时区时间,直接用: time.Now().Format("2006-01-02 15:04:05") 输出的是当地时区时间。 go语言并没有全局设置时区这么一个东西,每次输出时间都需要调用一个In()函数改变时区: var cstSh, _ = time.LoadLocation("Asia/Shanghai") //上海 fmt.Println("SH : ", time.Now().In(cstSh).Format("2006-01-02 15:04:...阅读全文

博文 2018-05-23 16:33:07 hell0cat

golang byte 操作

21天精品区块链课程免费学习,深入实战行家带路,助力开发者轻松玩转区块链! >>> byte数组转int // bytes to int 32 func bytesTo32Int(b []byte) int { buf := bytes.NewBuffer(b) var tmp uint32 binary.Read(buf, binary.BigEndian, &tmp) return int(tmp) } // bytes to int 16 func bytesTo16Int(b []byte) int { buf := bytes.NewBuffer(b) var tmp uint16 binary.Read(buf, binary.BigEndian, &tmp) return in...阅读全文

博文 2018-09-01 14:33:13 Robin3D

【Leetcode】:Single Number III问题 in Go语言

Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once. For example: Given nums = [1, 2, 1, 3, 2, 5], return [3, 5]. Note: The order of the result is not important. So in the above example, [5, 3] is also correct. Your algorithm shou...阅读全文

博文 2016-04-13 20:00:06 u013564276

Golang 之 Base62 编码

Base62 编码用62个可见字符来编码信息,也就是所谓的62进制,可用于缩短地址之类的。实现起来也很简单。当然,这个实现跟别人家的有可能不一样,反正自己能编能解就行。 package main import ( "math" "strings" ) const CODE62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" const CODE_LENTH = 62 var EDOC = map[string]int{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"a":10,"b":11,"c":12,"d":13,"e":14,"...阅读全文

博文 2016-08-03 13:00:00 qufo

命令行工具-轻松管理ssh连接配置manssh

### manssh - 基于Go的ssh config命令行管理器,帮助你方便ssh连接配置 ## 功能特性 * 快速的管理ssh连接别名配置. (添加,删除,查询,更新,备份) * 快速执行远程命令. (支持交互式) ## 项目地址 [https://github.com/xwjdsh/manssh/](https://github.com/xwjdsh/manssh/) ## 安装方式 ### Homebrew安装 ```shell brew tap xwjdsh/tap brew install xwjdsh/tap/manssh ``` ### 二进制方式安装 [直接下载](https://github.com/xwjdsh/manssh/...阅读全文

<15> go string_formatting

字符串格式化输出 package main import "fmt" import "os" type point struct { x, y int } func main() { // 创建一个point struct p := point{1, 2} // 输出struct的值 {1 2} fmt.Printf("%v\n", p) // 输出struct的值和字段 {x:1 y:2} fmt.Printf("%+v\n", p) // 输出struct的类型和字段和值 main.point{x:1, y:2} fmt.Printf("%#v\n", p) // 输出类型 main.point fmt.Printf("%T\n", p) // 输出整齐的排列 true fmt.Prin...阅读全文

博文 2015-12-11 21:00:01 a11101171

golang操作MySQL几个原则和示例

使用原则 库自带连接池,使用方不需自行实现。*sql.DB 线程安全,开箱即用,屏弊了底层创建连接的实现 Open 只是创建类,调用一次即可,使用前需要 Ping 确保连接正常。 一定要设置连接池的两个参数 MaxIdle, MaxOpen,否则在极端情况会把 DB 连接打满(未加索引,大事务阻塞)。可选 MaxLifetime,需咨询 DBA,一般 DB 默认8小时,无需设置,如果很短要视情况而定 事务会占用一个连接,尽可能减小事务耗时,打散大事务,否则会将 DB 连接数打满 prepare 会占用一个连接,每次使用完后,一定要 close ,否则同样会将连接数打满 DSN 需要指定时区和对时间字段的支持,否则会出现时间提前8小时的问题 Query, Prepare, Exec 无需业务层...阅读全文

博文 2017-02-10 06:32:37 董泽润

十六进制字符串转换为二进制,试过多个方法,求解?

类似这样的字符串(96659ee67b39f2d9c3418cddaa307c5e1640a6e883f3fa9540e846ad1221b990ba9ac28ebb2e4daf2ea039cc929b9e7d6),希望实现和php的hex2bin一样的效果,试过fmt.Sprintf,strconv.ParseUint等多个方法,Stack Overflow也找过,并没有完全解决的方法,主要是转换之后的长度不对,希望有接触过这个的解一下惑...阅读全文

fmt.Printf %* 格式化输出映射表

%d : decimal integer %x %o %b : integer in hexadecimal(十六进制) octal(八进制) binaery(二进制) %f %g %e:floating-point number: 3.141593 3.141592653589793 3.141593e+00 %t: boolean:true or false %c: rune(Unicode code point) %s: string %q: quoted string "abc" or rune 'c' %v: any value in a natural format %T: type of any value fmt....阅读全文

go语言的字符和字符串

Go语言中的字符 在Go语言中,没有字符类型,字符类型是rune类型,rune是int32的别称。 下面用一个简单的程序来演示字符类型: package main import ( "fmt" "reflect" ) func main() { r := '我' fmt.Printf("%q的类型为:%t 二进制为:%b\n", r, r, r) rType := reflect.TypeOf(r).Kind() fmt.Printf("r的实际类型为:%s\n", rType) } 程序输出: '我'的类型为:%!t(int32=25105) 二进制为:110001000010001 r的实际类型为:int32 那我产生一个问题:Unicode字符的长度是多少?这个问题的问法有没有问题?其...阅读全文

博文 2016-10-26 14:00:01 davidsu33

Go语言fmt包Printf方法详解

Go语言的标准输出流在打印到屏幕时有些参数跟别的语言(比如C#和Java)不同,下面是我整理的一些常用的格式化输入操作。 General %v 以默认的方式打印变量的值 %T 打印变量的类型 Integer %+d 带符号的整型,fmt.Printf("%+d", 255)输出+255 %q 打印单引号 %o 不带零的八进制 %#o 带零的八进制 %x 小写的十六进制 %X 大写的十六进制 %#x 带0x的十六进制 %U 打印Unicode字符 %#U 打印带字符的Unicode %b 打印整型的二进制 Integer width %5d 表示该整型最大长度是5,下面这段代码 12 fmt.Printf("|%5d|", 1) fmt.Printf("|%5d|", 1234567) 输出结...阅读全文

博文 2017-09-21 12:17:25 johng

大数加一,16进制,除了模拟还有什么好的方法了吗??

模拟代码