منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
كود تحويل byte الىwords - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : كود تحويل byte الىwords (/showthread.php?tid=10704)



كود تحويل byte الىwords - rafah samih - 17-11-14

من يستطيع مساعدتي بكود يحول البايتات الى ورد
مثلا

01 23 45 67 89 ab cd ef 01 12 23 34 45 56 67 78

تتحول الى مصفوفة

l[0]=67452301

l[1]=efcdab89

l[2]=34231201

l[3]=78675645

يعني تقسم البايتات اربع اجزاء وتسويلهم تدوير
اني سويت هذه الفنكشن بس بيها طلع خطأ

الخطأ بالمكان الاصفر

هذه الخوارزمية الاصلية

convert bytes to words

l[i/4]=(l[i/4]<<<8+k[i]


هذه الاشارة >>> معناها التدوير لليسار
[k[i هذا المدخل الاول البايتات



RE: كود تحويل byte الىwords - الوليد ☺ - 17-11-14


السلام عليكم ورحمة الله

أكيد تقصد DWord كما هو واضح من أمثلة النتائج التي في مثالك

هذه طريقة مختلفة قليلاً إن شاء الله تكون فيها الفائدة
PHP كود :
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click

    Dim b 
As Byte() = _
    
{&H01, &H23, &H45, &H67, &H89, &HAB, &HCD, &HEF, &H01, &H12, &H23, &H34, &H45, &H56, &H67, &H78}

    
Dim dw As Integer() = convBytesToDWords(b)

    
Dim s As New System.Text.StringBuilder
    
For 0 To dw.Length 1
        s
.AppendLine(String.Format("dw({0}) = {1} "iHex$(dw(i))))
    
Next
    MsgBox
(s.ToString)

End Sub


Private Function convBytesToDWords(As Byte()) As Integer()
    
Dim dw((b.Length 4) - 1) As Integer
    
For i1 0 To b.Length 1 Step 4
        
For i2 0 To 3
            dw
(i1 4) = (dw(i1 4) << 8) + (b(i1 i2))
        
Next
    Next
    
Return dw
End 
Function 




RE: كود تحويل byte الىwords - rafah samih - 18-11-14

رحم الله والديك
ياااااارب يوفقك ,, راح اجرب هذه الطريقة .. والف شكرا

طيب اذا اريد البايتات تكون مختلفة
يعني مو نفسهة
كل مرة يدخل شكل البايتات ويكون ورد مختلفة