BG Development


  Reply to this topicStart new topicStart Poll

> Десеттична в двоична бройна система
Sasho92
Публикувано на: 15-01-2015, 11:28
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 15
Регистриран на: 15.01.15



Преобразуване от десеттична в двоична бройна система.
Така както съм я написал програмата отговаря точно на описането на уикипедия
http://bg.wikipedia.org/wiki/Двоична_бройна_система
и другото което е решенията на примерите в уикито съвпадат с решения, които ми изкарва програмата.Като си смятам на листче и химикал пак ми се получават решенията които ми изкарва програмата ..
НО като задам командата
"String b = Integer.toBinaryString(a);" нали в отделен клас,просто за проверка, се изписват други решения... не знам защо.Това ми е въпросът към вас. От къде идва разликата??Сигурен съм, че съм разбрал как става пресмятането, математика винаги ми е била лесна.

package dsdsadsa;
import java.util.Scanner;
public class sdadsa {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Vavedete chislo ");
int a = input.nextInt();
int b = 1 ;
if (a%2==0){
System.out.print(0);
}else{
System.out.print(1);
}
for (int i = a; i>=1;i=i/2){
b=i/2;
if (b%2==0){
System.out.print(0);
}else{
System.out.print(1);
}

}
}
}
PMEmail Poster
Top
ivan84
Публикувано на: 15-01-2015, 12:24
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Извеждаш битовете на обратно. Най-младшия бит е най десния, а ти го поставяш най в ляво (на мястото на най-старшия). С други думи, получаваш огледално числото.

Имай в предвид, че тази задачка се реализира с побитови операции а не с делене.
PMEmail Poster
Top
Lachezar
Публикувано на: 15-01-2015, 12:27
Quote Post



Име: Лъчезар Добрев
Група: Потребител
Ранг: Почетен член

Мнения: 2795
Регистриран на: 10.11.04



Циклиш в обратен ред: вадиш последните цифри, а ги печаташ първи. Не знам с какъв апарат разполагаш: това може да се реши с рекурсия или с буфер.
Отделно правиш някаква странна хватка: първо делиш да две веднъж, след това въртиш цикъл върху остатъка. Няма смисъл от това, първата проверка може да бъде сложена в цикъла.

За да спестиш нерви на четящите (и съответно да подобриш количеството и качеството на отговорите) използвай [CODE] тага на форума.


--------------------
И'м ватцхинг ъоу...
PMUsers Website
Top
Sasho92
Публикувано на: 15-01-2015, 15:53
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 15
Регистриран на: 15.01.15



Благодаря. Сега дочетох упътването дето е дал човекът при задачките, това е този тип задачи за който не сме взели абсолютно всичко, за да ги решим.След 2 глави има глава бройни с-ми кадето са обяснени по добре нещата. Не разбрах само като копи-пейстна кода от джавата ми тука защо се махат растоянията от началото на редовете, само трябва да напиша това [CODE] ли?
PMEmail Poster
Top
ivan84
Публикувано на: 15-01-2015, 16:16
Quote Post



Име:
Група: Форумен член
Ранг: Почетен член

Мнения: 8170
Регистриран на: 01.04.11



Тук е обяснено горе долу.

Като публикуваш мнение, имаш копче "Прегледай". Поиграй си ако не ти е стане ясно.
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0