PDA

View Full Version : مبتدی: قرار دادن دوبایت در کنار هم ؟؟



سپهر-111
پنج شنبه 12 مرداد 1391, 21:19 عصر
سلام دوستان بزرگوار:قلب:



دوتا متغییر از نوع بایت داریم



A=&HFF

B=&H3B



که مقدار داخلش بر مبنای 16 هستش

حالا میخوام این دوبایت ببچسبونم به هم (نمیخوام جمع کنم فقط میخوام متغیرAدر اول و متغییر B بعد از متغیر اول قرار بگیره)



DIM C AS LONG

مثل این :

C =&HFF3B

بعدش میخوام روش محاسبه انجام بدم پس باید تو متغیر از نوع لانگ قرار بگیره . . .

ممنون میشم اگه دوستان راهنمایی بفرمایند:تشویق:
باتشکر

arenaw
پنج شنبه 12 مرداد 1391, 21:40 عصر
سلام
میتونی یه تیپ تعریف کنی و اینجوری توش بریزی:

Private Type MyByte
Byte1 As Byte
Byte2 As Byte
End Type

Private Sub Form_Load()
Dim bytes As MyByte
bytes.Byte1 = 155
bytes.Byte2 = 233
End Sub


ولی مقدار لانگ رو نمیشه توی بایت بریزیهاا! بایت فقط از 0 میشه تا 255
شایدم منظورت اینجوریه

Private Sub Form_Load()
Dim a As Byte, b As Byte
a = &HFF
b = &H3B
Dim c As Long, t As String

t = CLng(a) & CLng(b)
c = CLng(t)

End Sub

the king
پنج شنبه 12 مرداد 1391, 22:30 عصر
سلام دوستان بزرگوار:قلب:



دوتا متغییر از نوع بایت داریم



A=&HFF

B=&H3B



که مقدار داخلش بر مبنای 16 هستش

حالا میخوام این دوبایت ببچسبونم به هم (نمیخوام جمع کنم فقط میخوام متغیرAدر اول و متغییر B بعد از متغیر اول قرار بگیره)



DIM C AS LONG

مثل این :

C =&HFF3B

بعدش میخوام روش محاسبه انجام بدم پس باید تو متغیر از نوع لانگ قرار بگیره . . .

ممنون میشم اگه دوستان راهنمایی بفرمایند:تشویق:
باتشکر


هر وقت مقدار عددی ای رو در 256 یا H100& ضرب کنید یک بایت به سمت چپ منتقل میشه
و بایت 0 جای خالی سمت راستش رو پر می کنه، سپس با OR یا + اون یکی بایت رو جایگزین
اون بایت 0 کنید :

Dim A As Byte, B As Byte
Dim C As Long
A = &HFF
B = &H3B
C = (CLng(A) * 256&) Or B
MsgBox Hex(C)

سپهر-111
جمعه 13 مرداد 1391, 16:52 عصر
سلام
میتونی یه تیپ تعریف کنی و اینجوری توش بریزی:

Private Type MyByte
Byte1 As Byte
Byte2 As Byte
End Type

Private Sub Form_Load()
Dim bytes As MyByte
bytes.Byte1 = 155
bytes.Byte2 = 233
End Sub


ولی مقدار لانگ رو نمیشه توی بایت بریزیهاا! بایت فقط از 0 میشه تا 255
شایدم منظورت اینجوریه

Private Sub Form_Load()
Dim a As Byte, b As Byte
a = &HFF
b = &H3B
Dim c As Long, t As String

t = CLng(a) & CLng(b)
c = CLng(t)

End Sub



هر وقت مقدار عددی ای رو در 256 یا H100& ضرب کنید یک بایت به سمت چپ منتقل میشه
و بایت 0 جای خالی سمت راستش رو پر می کنه، سپس با OR یا + اون یکی بایت رو جایگزین
اون بایت 0 کنید :

Dim A As Byte, B As Byte
Dim C As Long
A = &HFF
B = &H3B
C = (CLng(A) * 256&) Or B
MsgBox Hex(C)



درورد بر دوستان گل:قلب:
نماز روزه همتون قبول حق
هر دو روش صحیح بود
ممنون از اینکه جواب دادید:تشویق:
اجرتون با خدا
(البته از مدیران محترم عذر میخوام میدونم پست زدن برای تشکر ممنوعه . . .ولی . . .)