教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang 位运算

golang 位运算

发布时间:2021-12-15   编辑:jiaochengji.com
教程集为您提供golang 位运算等资源,欢迎您收藏本站,我们将为您提供最新的golang 位运算资源

http://blog.opskumu.com/golang-bitwise.html


<blockquote style="margin:1em 40px; font-weight:bold; border-left-width:1em; border-left-style:solid; padding-left:1em; color:rgb(45,45,45); font-family:consolas,monaco,monospace; font-size:16px; line-height:26px; background-color:rgb(250,250,250)">

位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算). 位操作符

</blockquote> <h2 style="font-family:UbuntuMono-B,consolas,monaco,monospace; font-size:30px; line-height:52px; margin-top:0px; margin-bottom:26px; color:rgb(45,45,45); background-color:rgb(250,250,250)"> 一、简介</h2>

关于位运算的操作,维基百科关于 位操作符 的理论介绍已经非常清楚了。关于 Golang 的位运算其实和 C 语言比较类似,除了取反的操作和 C 语言有点区别,Golang 使用的是<code style="font-family:monospace,serif; font-size:1em; padding:2px 5px; white-space:nowrap; background-color:rgb(249,242,244)">^x</code>,而 C 使用的则是 <code style="font-family:monospace,serif; font-size:1em; padding:2px 5px; white-space:nowrap; background-color:rgb(249,242,244)">~x</code>取反。

<h2 style="font-family:UbuntuMono-B,consolas,monaco,monospace; font-size:30px; line-height:52px; margin-top:0px; margin-bottom:26px; color:rgb(45,45,45); background-color:rgb(250,250,250)"> 二、概念</h2> <ul style="margin:0px 0px 1.625em; padding:0px; list-style:square; color:rgb(45,45,45); font-family:consolas,monaco,monospace; font-size:16px; line-height:26px; background-color:rgb(250,250,250)"><li style="padding-left:20px"><code style="font-family:monospace,serif; font-size:1em; padding:2px 5px; white-space:nowrap; background-color:rgb(249,242,244)"><<</code> [ 左移 ] <ul style="margin:0px 0px 1.625em; padding:0px; list-style:square"><li style="padding-left:20px">1 << 2 == 4</li><li style="padding-left:20px">输出 0100 ,相比右移更常见,移位后空缺的部分全部填0</li></ul></li><li style="padding-left:20px"><code style="font-family:monospace,serif; font-size:1em; padding:2px 5px; white-space:nowrap; background-color:rgb(249,242,244)">>></code> [ 右移 ] <ul style="margin:0px 0px 1.625em; padding:0px; list-style:square"><li style="padding-left:20px">10 >> 2 == 2</li><li style="padding-left:20px">输出 0010</li></ul></li><li style="padding-left:20px"><code style="font-family:monospace,serif; font-size:1em; padding:2px 5px; white-space:nowrap; background-color:rgb(249,242,244)">x ^ y</code> [ 异或 ] <ul style="margin:0px 0px 1.625em; padding:0px; list-style:square"><li style="padding-left:20px">10 ^ 2 == 8</li><li style="padding-left:20px">操作的结果是如果某位不同则该位为1, 否则该位为0</li></ul></li><li style="padding-left:20px"><code style="font-family:monospace,serif; font-size:1em; padding:2px 5px; white-space:nowrap; background-color:rgb(249,242,244)">x | y</code> [ 或 ] <ul style="margin:0px 0px 1.625em; padding:0px; list-style:square"><li style="padding-left:20px">10 | 2 == 10</li><li style="padding-left:20px">两个相应的二进位中只要有一个为1, 该位的结果值为1</li></ul></li><li style="padding-left:20px"><code style="font-family:monospace,serif; font-size:1em; padding:2px 5px; white-space:nowrap; background-color:rgb(249,242,244)">x & y</code> [ 与 ] <ul style="margin:0px 0px 1.625em; padding:0px; list-style:square"><li style="padding-left:20px">10 & 2 == 2</li><li style="padding-left:20px">两个相应的二进位都为1, 该位的结果值才为1,否则为0</li></ul></li><li style="padding-left:20px"><code style="font-family:monospace,serif; font-size:1em; padding:2px 5px; white-space:nowrap; background-color:rgb(249,242,244)">^x</code> [ 取反 ] <ul style="margin:0px 0px 1.625em; padding:0px; list-style:square"><li style="padding-left:20px">^2 == -3</li><li style="padding-left:20px">减1取反 补码</li></ul></li></ul><h2 style="font-family:UbuntuMono-B,consolas,monaco,monospace; font-size:30px; line-height:52px; margin-top:0px; margin-bottom:26px; color:rgb(45,45,45); background-color:rgb(250,250,250)"> 三、参考</h2> <ul style="margin:0px 0px 1.625em; padding:0px; list-style:square; color:rgb(45,45,45); font-family:consolas,monaco,monospace; font-size:16px; line-height:26px; background-color:rgb(250,250,250)"><li style="padding-left:20px">位操作符</li><li style="padding-left:20px">golang 位运算详解</li></ul>
<ul class="list-tag list-linear" style="margin:0px 0px 1.625em; padding:0px; letter-spacing:-0.31em; word-spacing:-0.43em; list-style:square; text-transform:capitalize"><li class="list-head" style="padding-left:20px; display:inline-block; zoom:1; line-height:normal; letter-spacing:normal; margin-right:4px; word-spacing:normal; vertical-align:middle"> Tags: </li><li style="padding-left:20px; display:inline-block; zoom:1; line-height:normal; letter-spacing:normal; margin-right:0px; word-spacing:normal; vertical-align:middle"> Go <span style="padding:1px 5px; color:white; text-transform:uppercase; margin:0px 6px 0px 0px; display:inline-block; position:relative; vertical-align:middle; top:-2px; font-size:13px; background-color:rgb(226,86,8)">1</span></li></ul>


到此这篇关于“golang 位运算”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang位运算符
go语言20小时从入门到精通(三、运算符)
请教移位运算符
Golang——运算符和格式化输出
Go语言学习 第五章 运算符和表达式 ①
《Go语言四十二章经》第九章 运算符
Go语言基础之运算符
golang 位运算
【Golang基础】Go语言的操作符
golang的位运算操作符的使用

[关闭]
~ ~