math.Exp2(10)就是計算2的10次方。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、虛擬空間、營銷軟件、網(wǎng)站建設、昌圖網(wǎng)站維護、網(wǎng)站推廣。
下面是一個例子
package main
import "fmt"
import "math"
func main() {
fmt.Printf("%f\n",
math.Exp2(10))
fmt.Printf("%f\n",
math.Exp2(4))
}
本文介紹一些Go語言的基礎語法。
先來看一個簡單的go語言代碼:
go語言的注釋方法:
代碼執(zhí)行結果:
下面來進一步介紹go的基礎語法。
go語言中格式化輸出可以使用 fmt 和 log 這兩個標準庫,
常用方法:
示例代碼:
執(zhí)行結果:
更多格式化方法可以訪問中的fmt包。
log包實現(xiàn)了簡單的日志服務,也提供了一些格式化輸出的方法。
執(zhí)行結果:
下面來介紹一下go的數(shù)據(jù)類型
下表列出了go語言的數(shù)據(jù)類型:
int、float、bool、string、數(shù)組和struct屬于值類型,這些類型的變量直接指向存在內(nèi)存中的值;slice、map、chan、pointer等是引用類型,存儲的是一個地址,這個地址存儲最終的值。
常量是在程序編譯時就確定下來的值,程序運行時無法改變。
執(zhí)行結果:
執(zhí)行結果:
Go 語言的運算符主要包括算術運算符、關系運算符、邏輯運算符、位運算符、賦值運算符以及指針相關運算符。
算術運算符:
關系運算符:
邏輯運算符:
位運算符:
賦值運算符:
指針相關運算符:
下面介紹一下go語言中的if語句和switch語句。另外還有一種控制語句叫select語句,通常與通道聯(lián)用,這里不做介紹。
if語法格式如下:
if ... else :
else if:
示例代碼:
語法格式:
另外,添加 fallthrough 會強制執(zhí)行后面的 case 語句,不管下一條case語句是否為true。
示例代碼:
執(zhí)行結果:
下面介紹幾種循環(huán)語句:
執(zhí)行結果:
執(zhí)行結果:
也可以通過標記退出循環(huán):
--THE END--
運算符用于在程序運行時執(zhí)行數(shù)學或邏輯運算。
1.算術運算符
Go 語言的算術運算符如圖,假設A值為10,B值為20。
2.關系運算符
Go 語言的關系運算符如圖,假設A值為10,B值為20。
3.邏輯運算符
Go 語言的邏輯運算符如圖。假定A值為True,B值為False。
4.位運算符
位運算符對整數(shù)在內(nèi)存中的二進制位進行操作。
位運算符比一般的算術運算符速度要快,而且可以實現(xiàn)一些算術運算符不能實現(xiàn)的功能。如果要開發(fā)高效率程序,位運算符是必不可少的。
Go 語言的位運算符如圖。假定 A = 60,B = 13,其二進制數(shù)轉換如下。
A = 0011 1100
B = 0000 1101
5.賦值運算符
Go 語言的賦值運算符如圖。
6.其他運算符
Go 語言的其他運算符如圖。
運算符的優(yōu)先級
所謂優(yōu)先級,就是當多個運算符出現(xiàn)在同一個表達式中時,先執(zhí)行哪個運算符。
很多語言都是采用 ~ 作為按位取反運算符,Go 里面采用的是 ^ 。
如果作為二元運算符,^ 表示按位異或,即:對應位相同為 0,相異為 1。
操作符 ^,按位置零,例如:z = x ^ y,表示如果 y 中的 bit 位為 1,則 z 對應 bit 位為 0,否則 z 對應 bit 位等于 x 中相應的 bit 位的值。
對于有符號的整數(shù)來說,是按照補碼進行取反操作的(快速計算方法:對數(shù) a 取反,結果為 -(a+1) ),對于無符號整數(shù)來說就是按位取反
計算過程
以3為例? 3在內(nèi)存中補碼為 0*** 0011
取反? ? ? ? ? ? 1*** 1100
-1操作? ? ? ? ? 1*** 1011
除符號位取反? ? 1*** 0100 結果為-4
-------------------------------------------
以9為例 9在內(nèi)存中補碼為 0*** 1001
取反? ? ? ? ? ? 1*** 0110
-1操作? ? ? ? ? 1*** 0101
除符號位取反? ? 1*** 1010 結果為-10
-------------------------------------------
以-5為例 -5在內(nèi)存中為的補碼為 1*** 1011
為什么呢
-5源碼? ? ? ? ? 1*** 0101
除符號取反? ? ? 1*** 1010
+1操作? ? ? ? ? 1*** 1011
-------------------------------------------
那么-5取反怎么算
補碼 1***1011取反為 0***0100
因為符號位為0,所以是正數(shù)了,正數(shù)的補碼反碼源碼都是一個,所以是4
===================================
再看-1
-1源碼? ? ? ? ? 1*** 0001
除符號取反? ? ? 1*** 1110
+1操作? ? ? ? ? 1*** 1111
補碼 1*** 1111 取反為 0*** 0000
因為符號位為0,所以是正數(shù)了,正數(shù)的補碼反碼源碼都是一個,所以是0
go語言取反輸出的例子看這里
左移運算符()
將一個運算對象的各二進制位全部左移若干位(左邊的二進制位丟棄,右邊補0)。
例:a = a 2 將a的二進制位左移2位,右補0,
左移1位后a = a * 2;
若左移時舍棄的高位不包含1,則每左移一位,相當于該數(shù)乘以2。
右移運算符()
將一個數(shù)的各二進制位全部右移若干位,正數(shù)左補0,負數(shù)左補1,右邊丟棄。
操作數(shù)每右移一位,相當于該數(shù)除以2。
例如:a = a 2 將a的二進制位右移2位,
左補0 or 補1 得看被移數(shù)是正還是負。