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

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-16 15:32 chuanheng

常用位操作技巧(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-13 22:59 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...阅读全文

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-28 11:24 borey

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 十六进制表示,...阅读全文

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...阅读全文

博文 2013-11-09 13:09 king1076

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-08-31 21:42 fancyzhen

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-13 09:49 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(...阅读全文

博文 2012-10-20 12:25 body100123

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-04 17:32 shenguanpu

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-09-28 20:03 QQ245671051

golang http content_type

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

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...阅读全文

博文 2013-12-10 17:06 esrrhs

位运算计算(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 ...阅读全文

博文 2013-04-08 11:32 waynehu

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....阅读全文

博文 2015-08-26 12:05 leonpengweicn

常用位操作技巧(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 13:00 seago123

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-14 21:54 codemanship

【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-11 11:25 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...阅读全文

博文 2013-11-24 22:31 xming4321

【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-12 21:25 u013564276

<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-11-27 10:59 a11101171

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

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

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

模拟代码