Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.83.8] |
|
Сообщ.
#1
,
|
|
|
Кто знает как десятичное число перевести в строку (двоичное). - забыл как
З.Ы. Например : '0111001' |
Сообщ.
#2
,
|
|
|
Type
TBin = String; Function DecToBin(n : LongInt) : TBin; Var b : TBin; Begin b:=''; While n > 0 Do Begin If n mod 2 = 1 Then b := b + '1' Else b := b + '0'; n := n shr 1; End; DecToBin := b; End; Function BinToDec(b : TBin) : LongInt; Var m : LongInt; n : LongInt; L : Integer; i : Integer; Begin L := Length(b); n:=0; m:=1; For i := 1 To L Do Begin If b[i] = '1' Then n := n + m; m := m shl 1; End; BinToDec := n; End; |
Сообщ.
#3
,
|
|
|
Ну ты блин даёшь! ;D Такие вещи забывать
|
Сообщ.
#4
,
|
|
|
Когда-то давным-давно (году эдак в 199x) я это дело на паскале писАл. На Delphi не проверял (не было надобности), но думаю, что заработает:
Цитата Function BinByte(Numer: byte): string; assembler; asm cld mov al,8 les di,@Result stosb mov cx,8 mov bl,Numer @@m1: mov al,'0' shl bl,1 adc al,0 stosb loop @@m1 end; Function BinDWord(Numer: longint): string; assembler; asm cld mov al,32 les di,@Result stosb mov cx,16 mov bx,WORD PTR [Numer]+2 @@m1: mov al,'0' shl bx,1 adc al,0 stosb loop @@m1 mov cx,16 mov bx,WORD PTR [Numer] @@m2: mov al,'0' shl bx,1 adc al,0 stosb loop @@m2 end; Function BinWord(Numer: word): string; assembler; asm cld mov al,16 les di,@Result stosb mov cx,16 mov bx,Numer @@m1: mov al,'0' shl bx,1 adc al,0 stosb loop @@m1 end; |
Сообщ.
#5
,
|
|
|
Склероз, склероз.... на почве экзаменов.
СПАСИБО!!!!!!! |