numero positivo y par o inpar
Publicado por alexu (5 intervenciones) el 31/10/2020 13:44:08
De un número ingresado por teclado identificar si es positivo, negativo, par o impar
Valora esta pregunta
-1
void main()
{
int n;
bool positivo = false;
bool par = false;
cin >> n;
__asm
{
mov eax, n
bt eax, 31
jc s1
inc [positivo]
s1:
bt eax, 0
jc s2
inc [par]
s2 :
}
}
void main()
{
int n;
bool negativo = false;
bool impar = false;
cin >> n;
__asm
{
xor edx, edx
mov eax, n
bt eax, 31
adc edx, edx
mov byte ptr[negativo], dl
xor edx, edx
bt eax, 0
adc edx, edx
mov byte ptr[impar], dl
}
}
#include <iostream>
using namespace std;
int main()
{
int numero;
cout << "\nNumero: ";
cin >> numero;
cout << "\nEl numero es ";
numero >= 0 ? cout << "Positivo" : cout << "Negatigo";
numero % 2 == 0 ? cout << ", Par" : cout << ", Impar";
cout << endl;
return 0;
}
void main()
{
push ebp
mov ebp,esp
sub esp,8
int n;
bool negativo = false;
bool impar = false;
cin >> n;
mov ecx,dword ptr [_imp_?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A (0A510A8h)]
lea eax,[n]
push eax
mov byte ptr [negativo],0
mov byte ptr [impar],0
call dword ptr [__imp_std::basic_istream<char,std::char_traits<char> >::operator>> (0A5111Ch)]
__asm
{
xor edx, edx
xor edx,edx
mov eax, n
mov eax,dword ptr [n]
bt eax, 31
bt eax,1Fh
adc edx, edx
adc edx,edx
mov byte ptr[negativo], dl
mov byte ptr [negativo],dl
xor edx, edx
xor edx,edx
bt eax, 0
bt eax,0
adc edx, edx
adc edx,edx
mov byte ptr[impar], dl
mov byte ptr [impar],dl
}
}
mov esp,ebp
pop ebp
ret
int main()
{
mov ecx,offset _88D22677_LosPillaos@cpp (09300Bh)
call @__CheckForDebuggerJustMyCode@4 (081307h)
push offset string " " (08DC30h)
push dword ptr [_imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A (0910ACh)]
call std::operator<<<std::char_traits<char> > (0815CDh)
mov ecx,dword ptr [_imp_?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A (0910A8h)]
lea eax,[numero]
push eax
call dword ptr [__imp_std::basic_istream<char,std::char_traits<char> >::operator>> (09111Ch)]
push offset string "\nEl numero es " (08DC3Ch)
push dword ptr [_imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A (0910ACh)]
call std::operator<<<std::char_traits<char> > (0815CDh)
cmp dword ptr [numero],0
jl std::operator<<<std::char_traits<char> >+3Bh (082F3Bh)
int numero;
cout << "\nNumero: ";
cin >> numero;
cout << "\nEl numero es ";
numero >= 0 ? cout << "Positivo" : cout << "Negatigo";
push offset string "Positivo" (08DC4Ch)
jmp std::operator<<<std::char_traits<char> >+40h (082F40h)
push offset string "," (08DC58h)
numero % 2 == 0 ? cout << ", Par" : cout << ", Impar";
push dword ptr [_imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A (0910ACh)]
call std::operator<<<std::char_traits<char> > (0815CDh)
mov eax,dword ptr [numero]
and eax,80000001h
jns std::operator<<<std::char_traits<char> >+5Ch (082F5Ch)
dec eax
or eax,0FFFFFFFEh
add eax,1
jne std::operator<<<std::char_traits<char> >+65h (082F65h)
push offset string ", Par" (08DC64h)
jmp std::operator<<<std::char_traits<char> >+6Ah (082F6Ah)
push offset string ", Impar" (08DC6Ch)
cout << endl;
push dword ptr [_imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A (0910ACh)]
call std::operator<<<std::char_traits<char> > (0815CDh)
mov ecx,dword ptr [_imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A (0910ACh)]
push offset std::endl<char,std::char_traits<char> > (0815C8h)
call dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (0910B4h)]
return 0;
xor eax,eax
}
mov esp,ebp
pop ebp
ret
numero >= 0 ? cout << "Positivo" : cout << "Negatigo";
numero >= 0 ? cout << "Positivo" : cout << "Negativo";
cout << ((numero >= 0) ? "Positivo" : "Negativo");