Re: [問題] long int 用法

看板C_and_CPP (C/C++)作者 (我需要好運)時間16年前 (2010/03/14 04:43), 編輯推噓5(502)
留言7則, 4人參與, 最新討論串2/2 (看更多)
自問自答一下 ※ 引述《HigherKuo (我需要好運)》之銘言: : ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) : ( 未必需要依照此格式,文章條理清楚即可 ) : 遇到的問題: (題意請描述清楚) : 我宣告一個long int的變數 : 用sizeof顯示使用了8bytes (64bits) : 但是我嘗試想要讓這個值是2^n n>31 : 所以我寫了 unsigned long int test = 0x1<<(n); ^^^^^^^^ 此處並不會cast成64bits 改成unsigned long int test = unsigned long(0x1)<<n; 即可! : 但是當n >= 31 之後就無法正常執行 : 請問是哪裡的問題呢? 謝謝! : 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : 64 bits linux -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 141.213.66.166

03/14 06:36, , 1F
我也把這增修到10誡裡面好了,好像也蠻常看到這問題
03/14 06:36, 1F

03/14 12:12, , 2F
這樣他會把0x1 當成int在shift??
03/14 12:12, 2F

03/14 12:13, , 3F
應該說~ unsigned long int = int?
03/14 12:13, 3F

03/14 12:36, , 4F
linux: long=64, windows: long=32
03/14 12:36, 4F

03/14 13:37, , 5F
windows的long要看OS/開發平台吧, 64 bit的windows環境
03/14 13:37, 5F

03/14 13:37, , 6F
下記得就不是32 bit是64 bit啊@_@"
03/14 13:37, 6F

03/15 20:49, , 7F
windows7 64bit long=32
03/15 20:49, 7F
文章代碼(AID): #1Bc_ZhA1 (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Bc_ZhA1 (C_and_CPP)