کسی الگوریتم تبدیل مبنایی مثل 10 یا 2 به 16 و بالعکس رو بلده؟البته در زبان اسمبلی بگید قسمتهای عددیش رو میتونم یه کاری بکنم ولی سر حروف a تا f گیر کردم
کد:http://docs.google.com/ViewDoc?docid=dd9765wc_72cxwqnpgz
Printable View
کسی الگوریتم تبدیل مبنایی مثل 10 یا 2 به 16 و بالعکس رو بلده؟البته در زبان اسمبلی بگید قسمتهای عددیش رو میتونم یه کاری بکنم ولی سر حروف a تا f گیر کردم
کد:http://docs.google.com/ViewDoc?docid=dd9765wc_72cxwqnpgz
سلام کد زبان ماشین باینری به bcd که همه جا هست. من یه کد دارم منتها هنوز امتحان نکردم ببینم جواب میده یا نه؟ اما روش تبدیل از مبنای bcd به bin این طوریه که عدد بی سی دی ر 2 بی سی دی تقسیم متوالی میشه و خارج قسمت های اول و سوم اون با هم جمع میشن. در این حالت مبنای 16 به مبنای 2 برده میشه البته برای اعداد یک بایتی. در مورد تبدیل n به n هم گفتم که استادمون روش کار کنه الگوریتمشو برات دربیاره
موفق باشید
این bcd همون هگزای خودمونه دیگه؟نقل قول:
روش تبدیلش رو میدونم ولی سر حروفش گیر کردم(a . f)
دوست من حروف a تا f به ترتیب میشه میشه اعداد 10 تا 15
اگر کارت راه نیفتاد بگو تا برات یه سورس بزارم
یعنی کد اسکی مثلا a میشه 10 و b میشه 11 ؟ درست برداشت کردم؟ اگه سورس آماده ای هم دارید و بزارید خوب میشه ممنوننقل قول:
سلام
کلا 4 تا مبنا اینترنشنال تعریف شده
1-باینری (مبنای دو)
2-اکتا(Octa) مبنای هشت
3-دسیمال(ده دهی) << که تمامی اعداد واقعی که باهاشون سروکار داریم تو این مبنا هستند
4-هگزادسیمال(شانزده تایی)
مثال:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اینهم یه سورس که به زبان پاسکال نوشتم برای تبدیل همه ی مبناها(با پاسکال چون خواستم همه استفاده کنند)
الگوریتم رو خودت یاد بگیر از توی کد راحته
کد:{Program For Convert Decimal to Binary and Binary To Decimal
If for Big value Not Working Change array and Var}
{\\\\\\\\\+++++++++++++++/////////////}
{Write By:B r 4 v3 < M 4 j 3 3 d 7 6 >
2009
I.R.IRAN}
{/////////+++++++++++++++\\\\\\\\\\\\\}
program Bin2Dec2Bin;
uses crt;
var f:array[1..80] of longint;
ch:array[1..80] of char;
b:byte;
st:char;
i,j,h,num,sum:longint;
{/////////////////////////////////////////}
function power(m,n:longint):longint;
var t,i,p,q:longint;
begin
p:=m;
q:=n;
t:=1;
for i:=1 to q do
t:=t*p;
power:=t;
end;
{/////////////////////////////}
{decimal 2 binary & Binary 2 Decimal}
procedure dec2bin;
begin
write('Plz Enter Decimal Value :');
readln(num);
i:=1;
while num > 0 do
begin
f[i]:=num mod 2;
num:=num div 2;
i:=i+1;
end;
for j:=i-1 downto 1 do
write(f[j]);
readln;
end;
{/////////////////////////////}
procedure bin2dec;
begin
writeln('Enter Binary Value :');
readln(num);
i:=1;
while num > 0 do
begin
f[i]:=num mod 10;
num:=num div 10;
i:=i+1;
end;
for j:=i-1 downto 1 do
begin
sum:=sum+(f[j]*power(2,j-1));
end;
write(sum);
readln;
end;
{///////////////////////////////////}
{Decimal 2 octa & octa 2 Decimal}
procedure dec2oct;
begin
writeln('Enter Decimal Value :');
readln(num);
i:=1;
while num > 0 do
begin
f[i]:=num mod 8;
num:=num div 8;
i:=i+1;
end;
for j:=i-1 downto 1 do
write(f[j]);
readln;
end;
procedure oct2dec;
begin
writeln('Enter Oct Value :');
readln(num);
i:=1;
while num > 0 do
begin
f[i]:=num mod 10;
num:=num div 10;
i:=i+1;
end;
for j:=i-1 downto 1 do
begin
sum:=sum+(f[j]*power(8,j-1));
end;
write(sum);
readln;
end;
{/////////////////////////////////////}
{Decimal 2 hexadecimal & hexadecimal 2 Decimal}
procedure dec2hex;
begin
writeln('Enter Decimal Value :');
readln(num);
i:=1;
while num > 0 do
begin
h:=num mod 16;
case h of
0:ch[i]:='0';
1:ch[i]:='1';
2:ch[i]:='2';
3:ch[i]:='3';
4:ch[i]:='4';
5:ch[i]:='5';
6:ch[i]:='6';
7:ch[i]:='7';
8:ch[i]:='8';
9:ch[i]:='9';
10:ch[i]:='a';
11:ch[i]:='b';
12:ch[i]:='c';
13:ch[i]:='d';
14:ch[i]:='e';
15:ch[i]:='f';
end;
num:=num div 16;
i:=i+1;
end;
for j:=i-1 downto 1 do
write(ch[j]);
readln;
end;
{////////////////////////////////}
procedure hex2dec;
var s,s1,n,r:integer;
begin
n:=0;
r:=0;
writeln('Attention: Enter Lowcase Character(a,b,c,d,e,f) & Put "." End of Line (3ca.)');
writeln('Now Enter HexaDecimal Value');
repeat {read hexa number and calculate length of it}
inc(r);
read(ch[r]);
until ch[r]='.';
dec(r); {for "." 1 value decrease on r}
n:=r;
for i:=1 to n do
begin
st:=ch[i];
case st of
'0':f[i]:=0;
'1':f[i]:=1;
'2':f[i]:=2;
'3':f[i]:=3;
'4':f[i]:=4;
'5':f[i]:=5;
'6':f[i]:=6;
'7':f[i]:=7;
'8':f[i]:=8;
'9':f[i]:=9;
'a':f[i]:=10;
'b':f[i]:=11;
'c':f[i]:=12;
'd':f[i]:=13;
'e':f[i]:=14;
'f':f[i]:=15;
end;
end;
s:=n-1;
s1:=1;
while s>-1 do
begin
sum:=sum+f[s1]*power(16,s);
s:=s-1;
s1:=s1+1;
end;
writeln(sum);
readln;
readln;
end;
procedure all;
begin
dec2bin;
dec2oct;
dec2hex;
end;
{////////////////////M A I N//////////////////////}
begin
clrscr;
writeln('1:Decimal Value To Binary(example 17 > 10001)');
writeln('2:Binary Value To Decimal(example 10001 > 17)');
writeln;
writeln('3:Decimal Value To Octa(example 191 > 277)');
writeln('4:Octa Value To Decimal(example 277 > 191)');
writeln;
writeln('5:Decimal Value To Hex(example 200 > C8)');
writeln('6:Hex Value To Decimal(example C8 > 200)');
writeln;
writeln('7:Enter 7 For Convert Decimal Number To All');
readln(b);
case b of
1:dec2bin;
2:bin2dec;
3:dec2oct;
4:oct2dec;
5:dec2hex;
6:hex2dec;
7:all;
else
Writeln('Plz Enter Value 1 or 2');
readln;
end;
end.
فقط لطف کنید منبع رو هم بگید در ضمن کپی کردن!!!
امیدوارم مفید بوده باشه
سلام. تبدیل n به n :
برای تبدیل مبنای عدد 7 در مبنای 8 که می خواهد به مبنای 3 برود باید عدد 7 بر سه تقسیم شود و ابتدا خارج قسمت و سپس باقیمانده نوشته شود که برابر است با 21 و به همین ترتیب برای اعداد دیگر. پس باید al و ah را نگه داشت
تبدیل حروف به عدد:
این الگوریتم آن است. اسمبلی کنی جواب میده منتها باید ورودیت رشته باشه
موفق باشیدکد:case h of
'0' ...'9' : d=h-'0'
'a'..'f': d=h-'a'+10
'A'..'F': d=h-'A'+10
end case
سلام
من برنامه مبناها رو میخواستم که از 2 و4و8و16 به مبنای 10 ببره
اگه دارین برام بذارین ممنون میشم
[سلام ،
من یه توضیح کلی لازم دارم در مورد مبنای 16