VB中如何判斷32位的Integer其中的某一位,比如第10位是0還是1(二進位制值)

2021-08-25 05:32:56 字數 3309 閱讀 6837

1樓:匿名使用者

vb 邏輯遠算符也是位運算運算子

private function isbitsetnotzero(x as long, n as integer) as integer

if n < 1 or n > 32 then

isbitsetnotzero = -1 '返回-1表示傳入引數錯誤,1表示該位為1,0表示該位為零

else

if n <= 31 then

dim d as long

d = 2 ^ (n - 1)

if (x and d) = d then

isbitsetnotzero = 1

else

isbitsetnotzero = 0

end if

else

isbitsetnotzero = 1

else

isbitsetnotzero = 0

end if

end if

end if

end function

private sub comm_sub(a as long, i as integer, ret as integer)

if ret < 0 then

msgbox "傳入引數錯誤"

else

if ret > 0 then

msgbox "a = " & hex(a) & " 的第" & cstr(i) & " 位為1"

else

msgbox "a = " & hex(a) & " 的第" & cstr(i) & " 位為0"

end if

end if

end sub

private sub command1_click()

dim a as long

dim i as integer

dim ret as integer

a = &h80000003

i = 0

ret = isbitsetnotzero(a, i)

comm_sub a, i, ret

end sub

private sub command2_click()

dim a as long

dim i as integer

dim ret as integer

a = &h80000003

i = 1

ret = isbitsetnotzero(a, i)

comm_sub a, i, ret

end sub

private sub command3_click()

dim a as long

dim i as integer

dim ret as integer

a = &h80000003

i = 32

ret = isbitsetnotzero(a, i)

comm_sub a, i, ret

end sub

private sub command4_click()

dim a as long

dim i as integer

dim ret as integer

a = &h80000003

i = 3

ret = isbitsetnotzero(a, i)

comm_sub a, i, ret

end sub

private sub command5_click()

dim a as long

dim i as integer

dim s as string

a = &h80750003

s = ""

for i = 1 to 32

s = s & "a = 0x" & hex(a) & " 的第" & cstr(i) & "位為" & cstr(isbitsetnotzero(a, i)) & vbcrlf

if i < 32 and i mod 8 = 0 then s = s & "  **********  " & vbcrlf

next

msgbox s

end sub

2樓:匿名使用者

mid函式就可以了

newstring = mid(字串,擷取開始位置,擷取個數)擷取開始位置=len(字串)-第幾位+1擷取個數=1

3樓:匿名使用者

我寫了一個,你看是不是這樣的?

現有一個二進位制數,如何快速判斷某位是0還是1?

4樓:匿名使用者

bool c= 你想要的值bai;

int dig= 你想要判斷的du

位置。cout << (c&(1

,1<<1 = 10,

1<<2 = 100,

1<<3 = 1000……

這就相當於那一位置取dao到了1,&與操內作,只有1和1與是容1,0和1與是0了。

5樓:哥德堡快遞

n:待判斷的二進位制數

b:待判斷的位(右往左)

結果:((n>>(b-1))&1

vb中如何判斷一個整數型變數是"空值"還是"0"?

6樓:颶極

你可以直接判斷text的值嗎,例如

if text1.text = "" then  '輸入值為空...elseif text1.text = "0" then  '輸入值為「0」

...end if

我也是新手,多多指教

7樓:匿名使用者

如果變數 i 是整型變數,預設值應該是 0 ,你可以使用函式 isnumeric() 函式判斷是否是數字:

if  isnumeric(text1.text)=true then

'是有效數字,你的是數字的**

if val(text1.text)=0 then'數字為 0 ,你的是 0 的**

end if

else

'無效數字:不是數字,你的不是數字的**

end if

現有一個二進位制數,如何快速判斷某位是0還是1

8樓:小米地瓜來

n:待判斷的二進位制數

b:待判斷的位(右往左)

結果:((n>>(b-1))&1

如何知道窗體已經最小化,vb中判斷窗體狀態,若為最小化則恢復為正常

樓主可以在窗體的 resize 事件中通過檢測窗體的 windowstate 屬性值來獲知視窗已經最小化。下面是個例子 private sub form resize if me.windowstate vbminimized then msgbox 您已將視窗最小化了 vbokonly,視窗狀態 ...

如何在裝有32位xp系統的64位電腦上安裝64位win7系統

裝64位win 7系統非常簡單,其實在電腦上安裝32位系統和64位系統是沒有區別的,只要正常格式化原有32位系統,然後正常安裝新系統就行了。但要注意,第一,要在格式化前備份原有硬碟中的資料,保證格式化的安全,因為xp系統的硬碟模式與win7的不同,要格式化全盤從新分割槽 第二,選擇安裝win 7 6...

在VB中如何簡化過多巢狀的if語句

何必用vb,直接操作就可以,選定a5到b100,假設100行資料,然後 編輯 定位 定位條件的空值,然後在編輯欄內輸入 最後按ctrl 回車即可 if b e 10 then s1 s1 1 elseif b e 20 thens2 s2 1 elseif b e 50 thens3 s3 1 el...