View Full Version : مبتدی: قرار دادن دوبایت در کنار هم ؟؟
  
سپهر-111
پنج شنبه 12 مرداد 1391, 22:19 عصر
سلام دوستان بزرگوار:قلب:
  
دوتا  متغییر از نوع بایت داریم
  
A=&HFF
  
B=&H3B
  
که مقدار داخلش بر مبنای 16 هستش
  
حالا میخوام این دوبایت ببچسبونم به هم (نمیخوام جمع کنم فقط میخوام متغیرAدر اول   و متغییر   B  بعد از متغیر اول قرار بگیره)
  
DIM  C AS LONG
  
مثل این  :   
 C =&HFF3B
  
بعدش میخوام روش محاسبه انجام بدم پس باید تو  متغیر از نوع لانگ قرار بگیره . . . 
ممنون میشم اگه دوستان راهنمایی بفرمایند:تشویق:
باتشکر
arenaw
پنج شنبه 12 مرداد 1391, 22: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, 23: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, 17: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)
 
درورد بر دوستان گل:قلب:
نماز روزه همتون قبول حق
هر دو روش صحیح بود
ممنون از اینکه جواب دادید:تشویق:
اجرتون با خدا
(البته از مدیران محترم عذر میخوام میدونم پست زدن برای تشکر ممنوعه . . .ولی . . .)
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.