Logo Hardware.com.br
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas

Questão de VBScript

#1 Por tpcvasco 21/05/2014 - 16:39
Fiz uma prova recentemente e uma das questões trazia o seguinte código, em VBScript
<%
Expression1 = 1
Expression2 = 2
Result = Expression1 AND Expression2
Response.Write "Result = " Result
%>

Ele pergunta a saída. Eu marquei 1, porém o gabarito dá como resposta 0.
Eu não entendo de VBScript, porém em linguagem C, q é oq conheço, a resposta seria 1.
Alguém pode me dizer se é isso mesmo, se em VBScript 1 AND 2 é 0?
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Deutriex
Deutriex Geek Registrado
2.1K Mensagens 206 Curtidas
#2 Por Deutriex
21/05/2014 - 17:32
Sim, infelizmente o gabarito está certo

2 em binário é 10
e 1 em binário é 01

Ao fazer o AND com os dois números, o operador o faz bit a bit, resulta-se em zero, pois não existe bits 1 comuns na mesma posição, portanto o resultado é zero.

10 (and)
01
--
00

E isso não se limita ao VBScript, as é assim em todas as linguagens de programação.

E onde você chegou a conclusão que em C o resultado é 1? Como já disse, a resposta não depende da linguagem utilizada. Em C, o resultado também retorna zero:

[PHP]
#include
#include

int main(){
int Expression1 = 1;
int Expression2 = 2;
int Result = Expression1 & Expression2;
printf("%d\n", Result);
system("pause");
return 0;
}
[/PHP]
Note "APOLLO11": Sony 4k 65'' | Notebook Gamer NAVE Polaris GK5NP50 - 120hz | AMD Ryzen 4600H | NVIDIA GeForce GTX 1650 Mobile | Kingston NV1 2TB | 64GB DDR4 3200 MHz
Shura16
Shura16 Ubbergeek Registrado
2.5K Mensagens 601 Curtidas
#3 Por Shura16
21/05/2014 - 17:38
Pesquisando, encontrei resposta (acho).

O operador AND é lógico.
Logo ele está testando se Expression1 e Expression2 são verdadeiros ou falsos.

Considerando que o padrão do booleano é falso e que falso seria 0, logo False AND False = False

False = 0

Resposta = 0

Veja: veja.png http://www.tizag.com/vbscriptTutorial/vbscriptoperators.php
veja.png http://msdn.microsoft.com/pt-br/library/wts33hb3.aspx
Coragem não é ausência de medo e sim o controle dele.

Linux em casa!
Windows 10, na empresa!
Agora: Android no bolso!
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#4 Por tpcvasco
22/05/2014 - 10:37
Deutriex disse:

E onde você chegou a conclusão que em C o resultado é 1? Como já disse, a resposta não depende da linguagem utilizada. Em C, o resultado também retorna zero:

[php]
#include
#include

int main(){
int Expression1 = 1;
int Expression2 = 2;
int Result = Expression1 & Expression2;
printf("%d\n", Result);
system("pause");
return 0;
}
[/php]



Ah tá, não me liguei q o AND, em VBScript, era bit-a-bit, achei q fosse o && do C. Se vc substituir nesse código por
int Result = Expression1 && Expression2;
Dá como resposta o 1 q eu pensei.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Atento
Atento Tô em todas Registrado
2.5K Mensagens 9 Curtidas
#5 Por Atento
26/05/2014 - 17:01
Shura16 disse:
Pesquisando, encontrei resposta (acho).

O operador AND é lógico.
Logo ele está testando se Expression1 e Expression2 são verdadeiros ou falsos.

Considerando que o padrão do booleano é falso e que falso seria 0, logo False AND False = False

False = 0

Resposta = 0

Veja: veja.png http://www.tizag.com/vbscriptTutorial/vbscriptoperators.php
veja.png http://msdn.microsoft.com/pt-br/library/wts33hb3.aspx


Se for o operador lógico e não o bit a bit a resposta seria 1, pois tudo o que for diferente de 0 é verdadeiro.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal