Java - абсолютна стойност
25 отговора
0 прегледа
Java - абсолютна стойност
Започнах малко да се занимавам с Java, по-специално с аплети. Имам въпрос:
Ако, имам числото A, което може да е положително или отрицателно, с кой израз да взема абсолютната му стойност? Примерно -4 да стане 4.
Ако, имам числото A, което може да е положително или отрицателно, с кой израз да взема абсолютната му стойност? Примерно -4 да стане 4.
Re: Java - абсолютна стойност
Има си готов метод, който се намира в java.lang.Math (не е нужно да го импорт-ваш - по default си е импортнат).
Math.abs(int/double/... a) - връща ти |a|
Ето ти пример:
import java.util.Scanner;
public static void main(String[] args){
Scanner in = new Scanner( System.in );
int a = in.nextInt();
System.out.print( Math.abs(a) );
}
Успех!
ПП
А вингаи можеш да си направиш и твоя версия на метода abs() .
Math.abs(int/double/... a) - връща ти |a|
Ето ти пример:
import java.util.Scanner;
public static void main(String[] args){
Scanner in = new Scanner( System.in );
int a = in.nextInt();
System.out.print( Math.abs(a) );
}
Успех!
ПП
А вингаи можеш да си направиш и твоя версия на метода abs() .
Re: Java - абсолютна стойност
Значи конвертираш към стринг, после махаш пърив карактер от стринга (минуса) със субстринг и после това дето ти остава го конвертираш към число.
Това е най-сигурно, понеже не е ясно как са ги писали библиотеките в Джата, най-добре ти да си в контрол на тези неща да знаеш, че няма да се обърка нещо
Това е най-сигурно, понеже не е ясно как са ги писали библиотеките в Джата, най-добре ти да си в контрол на тези неща да знаеш, че няма да се обърка нещо
Re: Java - абсолютна стойност
каква функция бре ... ти в шести клас не си ли бил (а да не се учеше и преди това) ?!?
number = (number > 0) ? number : -number
Ха сега ходи да искаш 1500 лева някъде и като не ти ги дадат се оплачи в този клуб че гадните робовладелци не ти ги дават, а пък ти си много умен, че и направо гениален, ама те са стиснати.
number = (number > 0) ? number : -number
Ха сега ходи да искаш 1500 лева някъде и като не ти ги дадат се оплачи в този клуб че гадните робовладелци не ти ги дават, а пък ти си много умен, че и направо гениален, ама те са стиснати.
Re: Java - абсолютна стойност
Много лошо! А какво става с целите числа над 2-3 милиарда, дето излизат извън 32 бита при работа със знак? А с дробните?
Освен това какви са тези magic numbers? Защо не използваш FIRST_STRING_POSITION вместо 0 в stringRepresentation[0] и SECOND_STRING_POSITION в stringRepresentation.Substring(1)? (Имената на константите са въпрос на личен вкус, разбира се - но четивността не бива да се жертва.)
Също така какви са тези хакове stringRepresentation[0] - хората нали затова са написали метод Substring - да беше използвал Substring(FIRST_STRING_POSITION,ONE_CHAR_LENGTH). Естествено, преди това сме дефинирали ONE_CHAR_LENGTH да е 1. Хем и стилът се запазва.
Въобще ми се струва, че не си дорасъл още за enterprise software.
Освен това какви са тези magic numbers? Защо не използваш FIRST_STRING_POSITION вместо 0 в stringRepresentation[0] и SECOND_STRING_POSITION в stringRepresentation.Substring(1)? (Имената на константите са въпрос на личен вкус, разбира се - но четивността не бива да се жертва.)
Също така какви са тези хакове stringRepresentation[0] - хората нали затова са написали метод Substring - да беше използвал Substring(FIRST_STRING_POSITION,ONE_CHAR_LENGTH). Естествено, преди това сме дефинирали ONE_CHAR_LENGTH да е 1. Хем и стилът се запазва.
Въобще ми се струва, че не си дорасъл още за enterprise software.
Re: Java - абсолютна стойност
Правиш проверка, дали числото е отрицателно.
Ако, това е така, отново му задаваш отрицателна стойност(умножаваш го с -1).
Примерно:
if (A < 0)
A = - A;
Но, има и вградена функция, както ти казаха по-горе: Math.abs(A).
Ако, това е така, отново му задаваш отрицателна стойност(умножаваш го с -1).
Примерно:
if (A < 0)
A = - A;
Но, има и вградена функция, както ти казаха по-горе: Math.abs(A).
Редактирано от Sargon lll на
Re: Java - абсолютна стойност
пича пита с кой израз да вземе абсолютната стойност на числото А а не как да присвои на number абсолютната стойност на number. Кфо праим ако искаме да ползваме старата стойност на number след това, което и изкендзал? Иначе и аз съм робовладелец, ама хората трябва да се уважават.
Re: Java - абсолютна стойност
Само идиот може да оспорва правилността на клас с името AbsoluteFactory.
Re: Java - абсолютна стойност
Елементарно - намираш адреса на числото и нулираш най-страшния бит ;-)
Re: Java - абсолютна стойност
Побитов нот бих рекнал, ама тва с 'най-страшния бит' кърти мифки просто:)
Re: Java - абсолютна стойност
Присвояването може да се махне ...
Въпросът е че той въобще не може да имплементира една елементарна математическа функция, която се учи в шести клас.
И в случая nick-a "начинаещ" не е извинение - под начинаещ не се разбира "тотално неграмотен".
Ти при цялото уважение, което проявяваш - би ли го взел и би ли приел да си му шеф?
Въпросът е че той въобще не може да имплементира една елементарна математическа функция, която се учи в шести клас.
И в случая nick-a "начинаещ" не е извинение - под начинаещ не се разбира "тотално неграмотен".
Ти при цялото уважение, което проявяваш - би ли го взел и би ли приел да си му шеф?
Re: Java - абсолютна стойност
ХА-ХА-ХА-ХА най-страшен бит! {жа умра от смях}
(бай-дъ-вей нулирането на най-най-най-страшниа бит няаааама да помогне, но обаче всъщност следната програма на асемблер ще свърши работа:
)
[няма ташак, тва е abs(x) където x е число когато компилатора реши, компилатор разбиаш ли]
Чао глупаци!
(бай-дъ-вей нулирането на най-най-най-страшниа бит няаааама да помогне, но обаче всъщност следната програма на асемблер ще свърши работа:
cwd
xor ax,dx
sub ax,dx
)
[няма ташак, тва е abs(x) където x е число когато компилатора реши, компилатор разбиаш ли]
Чао глупаци!
Re: Java - абсолютна стойност
Напоследък компютрите са се разцъкали със страшни мандахерци, и почвам да се замислям дали не е била права една колежка в университета дето слагаше по два asm ret един след друг, защото процесора можел да го "изтърве".
Та по тази логика, аз предлагам направо да си остане на стринг и за по сигурно минус-а да се обърне в плюс, а ако няма никакъв знак на му се вкара един плюс - хем по лесно ще се чете.
Та по тази логика, аз предлагам направо да си остане на стринг и за по сигурно минус-а да се обърне в плюс, а ако няма никакъв знак на му се вкара един плюс - хем по лесно ще се чете.
За "страшния бит"
Това което си написал със сигурност е глупост.
Обаче, ако приемем че:
1. Числото е signed.
2. Числото е отрицателно.
3. Числото не е с плаваща точка.
То, тогава разгледай следното:
Което е същото като: x = -x
Ego praeferro ante vesper bibere aquam slivoevensem
Обаче, ако приемем че:
1. Числото е signed.
2. Числото е отрицателно.
3. Числото не е с плаваща точка.
То, тогава разгледай следното:
template<typename T>
T _abs(const T& x)
{
return (~(T)0 - x) + 1;
}
Което е същото като: x = -x
Ego praeferro ante vesper bibere aquam slivoevensem
Re: Java - абсолютна стойност
не бих, защото няма елементарни Java познания, и незнае как да се справя с това. :)
Re: Java - абсолютна стойност
n = (n > 0) ? n : -n
porednoto dokazatelstvo za tiq deto po4nali da se ""zanimavat""
haha
porednoto dokazatelstvo za tiq deto po4nali da se ""zanimavat""
haha
Тц. Не ме кефи така. Няма достатъчно подчертавки.
Ето тва е работната ми версия, за сега обръща само знака ;-)
__int32
__inline
__declspec (nothrow)
__declspec (naked)
__fastcall
__abs (__int32) {
__asm neg ecx
__asm mov eax, ecx
__asm ret
}
__int32
__inline
__declspec (nothrow)
__declspec (naked)
__fastcall
__abs (__int32) {
__asm neg ecx
__asm mov eax, ecx
__asm ret
}