السلام عليكم ورحمة الله وبركاته[/COLOR]
الفكرة بسيطة , سوف يتم استيراد كامل الـ
HexString على أنه سلسلة نصية عادية
ثم يتم عمل حلقة تكرار (
for) بشرط بلوغ عدد عناصر الـ
HexString ثم في كل حلقة يتم جلب عنصرين من الـ
HexString و وضعهم في المتغير (
Container) الحاوية
ثم يتم إدراجهم في متغير الـ
Convert كـ
ASCII Code لحرف واحد و بعدها تعاد قيمة العنصرين (
FF مثلًا ) إلى متغير أخير (
HEx) كـ
hex number وبعدها يتم إضافتها إلى الـ
Temp CharString المؤقتة قبل أن تعاد قيمتها إلى موضع إستدعائها
.
.
الـ Headers
- الكود:
-
[LEFT]#include
#include[/LEFT]
الـ Function
- الكود:
-
[LEFT][COLOR="DimGray"]
[COLOR="Red"]string [/COLOR]HExToCHar([COLOR="Red"]string [/COLOR][COLOR="MediumTurquoise"]ConverterOffset[/COLOR])
{
[COLOR="Red"]string [/COLOR]temp,[COLOR="Olive"]Container[/COLOR];
for([COLOR="Red"]int [/COLOR][COLOR="Magenta"]counter[/COLOR] = [COLOR="Orange"]0[/COLOR] ; [COLOR="Magenta"]counter[/COLOR] < [COLOR="MediumTurquoise"]ConverterOffset[/COLOR].length();[COLOR="Magenta"]counter[/COLOR]++){
[COLOR="Red"]int [/COLOR]HEx;
[COLOR="Olive"]Container[/COLOR] = [COLOR="MediumTurquoise"]ConverterOffset[/COLOR][[COLOR="Magenta"]counter[/COLOR]];
[COLOR="Olive"]Container[/COLOR] += [COLOR="MediumTurquoise"]ConverterOffset[/COLOR][[COLOR="Magenta"]counter[/COLOR]+[COLOR="Orange"]1[/COLOR]];
[COLOR="Red"]std::stringstream [/COLOR][COLOR="SeaGreen"]Convert[/COLOR];
[COLOR="SeaGreen"]Convert[/COLOR] [COLOR="Yellow"]<<[/COLOR] [COLOR="Olive"]Container[/COLOR] ;
[COLOR="SeaGreen"]Convert[/COLOR] [COLOR="Yellow"]>>[/COLOR] std::hex [COLOR="Yellow"]>>[/COLOR] HEx;
temp += HEx;
[COLOR="Magenta"]counter[/COLOR]++;
}
return temp;
}[/COLOR][/LEFT]
كود كامل - الكود:
-
[LEFT][COLOR="DimGray"]#include
#include
#include
using namespace std;
[COLOR="Red"]string [/COLOR]HExToCHar([COLOR="Red"]string [/COLOR][COLOR="MediumTurquoise"]ConverterOffset[/COLOR])
{
[COLOR="Red"]string [/COLOR]temp,[COLOR="Olive"]Container[/COLOR];
for([COLOR="Red"]int [/COLOR][COLOR="Magenta"]counter[/COLOR] = [COLOR="Orange"]0[/COLOR] ; [COLOR="Magenta"]counter[/COLOR] < [COLOR="MediumTurquoise"]ConverterOffset[/COLOR].length();[COLOR="Magenta"]counter[/COLOR]++){
[COLOR="Red"]int [/COLOR]HEx;
[COLOR="Olive"]Container[/COLOR] = [COLOR="MediumTurquoise"]ConverterOffset[/COLOR][[COLOR="Magenta"]counter[/COLOR]];
[COLOR="Olive"]Container[/COLOR] += [COLOR="MediumTurquoise"]ConverterOffset[/COLOR][[COLOR="Magenta"]counter[/COLOR]+[COLOR="Orange"]1[/COLOR]];
[COLOR="Red"]std::stringstream [/COLOR][COLOR="SeaGreen"]Convert[/COLOR];
[COLOR="SeaGreen"]Convert[/COLOR] [COLOR="Yellow"]<<[/COLOR] [COLOR="Olive"]Container[/COLOR] ;
[COLOR="SeaGreen"]Convert[/COLOR] [COLOR="Yellow"]>>[/COLOR] std::hex [COLOR="Yellow"]>>[/COLOR] HEx;
temp += HEx;
[COLOR="Magenta"]counter[/COLOR]++;
}
return temp;
}
[COLOR="Red"]int [/COLOR]main([COLOR="Red"]int [/COLOR]argc,[COLOR="Red"]char [/COLOR]* argv[] ){
if(argc < [COLOR="Orange"]2[/COLOR]) return [COLOR="Orange"]0[/COLOR];
cout [COLOR="Yellow"]<<[/COLOR] HExToCHar(argv[[COLOR="Orange"]1[/COLOR]]);
return [COLOR="Orange"]0[/COLOR];
}[/COLOR][/LEFT]
تطبيق عملي
- الكود:
-
[LEFT][COLOR="DimGray"]C:\Users\m0az\Desktop>sdf.exe [COLOR="Yellow"]6d30617a[/COLOR]
[COLOR="Red"]m0az[/COLOR][/COLOR][/LEFT]