Friday, August 24, 2007

What is BotNet....?

Botnet This is the name given to a collection of these bots.

Then what is Bot.......

Bots are software applications that run automated tasks over the internet. Bots perform tasks that are both simple and structurally repetitive, at a much higher rate than would be possible for a human editor alone. Bots are used in a malicious way by criminal gangs to coordinate attacks on networked computers for financial gain. (Thousands of infected PC's around the world can all be used at the same time for an unlawful act.)


Microsoft maps out Visual C++ future

Microsoft's Visual C++ team has been mapping out the future of the development platform, looking to highlight native and managed code capabilities, a Microsoft executive wrote this week.

"The Visual C++ team has been looking at what they should [feature] in VC++ to ensure that the direction of the product aligns closely with customer needs and market realities," said S. "Soma" Somasegar, corporate vice president of the Microsoft developer division, in his blog.

Three things are on the minds of the team: a renewed emphasis on tools for writing native code, extending applications to take advantage of managed functionality and recognition that developers are using C++/CLI (Common Language Infrastructure) to bridge native and managed code. Managed functionality being eyed by the team includes technologies such as Windows Presentation Foundation and Windows Communication Foundation.

"The team will be significantly increasing support for native development tools," Somasegar said. This involves investigating ways to make C++ developers more efficient in understanding, updating and validating the quality of large native code bases, he said. A front-end rewrite is being worked on to improve IntelliSense capabilities.

"This same work should pave the way for future enhancements such as refactoring and advanced source code analysis," said Somasegar.

Native libraries are to be updated to simplify development of rich client user interfaces and access to Windows platform innovation, he said. "Friction-free" interoperability between native and managed code is a goal also.

Microsoft's new Visual C++ strategy will begin to be reflected in the upcoming Visual Studio 2008 development tools platform, which had been codenamed "Orcas" and is due later this year. But most of the changes will occur afterward, said Somasegar.

"The team is currently kicking around a number of native code and interop features planned for Orcas+1, and we are always interested in hearing from customers," Somasegar said.

Friday, August 17, 2007

What is encryption?

The incredible growth of the Internet has excited businesses and consumers alike with its promise of changing the way we live and work. But a major concern has been just how secure the Internet is, especially when you're sending sensitive information through it.

Let's face it, there's a whole lot of information that we don't want other people to see, such as:

  • Credit-card information
  • Social Security numbers
  • Private correspondence
  • Personal details
  • Sensitive company information
  • Bank-account information

Information security is provided on computers and over the Internet by a variety of methods. A simple but straightforward security method is to only keep sensitive information on removable storage media like floppy disks. But the most popular forms of security all rely on encryption, the process of encoding information in such a way that only the person (or computer) with the key can decode it.

In this article, you will learn about encryption and authentication. You will also learn about public-key and symmetric-key systems, as well as hash algorithms.

Encryption Systems

Computer encryption is based on the science of cryptography, which has been used throughout history. Before the digital age, the biggest users of cryptography were governments, particularly for military purposes. The existence of coded messages has been verified as far back as the Roman Empire. But most forms of cryptography in use these days rely on computers, simply because a human-based code is too easy for a computer to crack.

Most computer encryption systems belong in one of two categories:

  • Symmetric-key encryption
  • Public-key encryption

Symmetric Key

In symmetric-key encryption, each computer has a secret key (code) that it can use to encrypt a packet of information before it is sent over the network to another computer. Symmetric-key requires that you know which computers will be talking to each other so you can install the key on each one. Symmetric-key encryption is essentially the same as a secret code that each of the two computers must know in order to decode the information. The code provides the key to decoding the message. Think of it like this: You create a coded message to send to a friend in which each letter is substituted with the letter that is two down from it in the alphabet. So "A" becomes "C," and "B" becomes "D". You have already told a trusted friend that the code is "Shift by 2". Your friend gets the message and decodes it. Anyone else who sees the message will see only nonsense.

Public Key

Public-key encryption uses a combination of a private key and a public key. The private key is known only to your computer, while the public key is given by your computer to any computer that wants to communicate securely with it. To decode an encrypted message, a computer must use the public key, provided by the originating computer, and its own private key. A very popular public-key encryption utility is called Pretty Good Privacy (PGP), which allows you to encrypt almost anything.

To implement public-key encryption on a large scale, such as a secure Web server might need, requires a different approach. This is where digital certificates come in. A digital certificate is basically a bit of information that says that the Web server is trusted by an independent source known as a certificate authority. The certificate authority acts as a middleman that both computers trust. It confirms that each computer is in fact who it says it is, and then provides the public keys of each computer to the other.

Public Key: SSL

A popular implementation of public-key encryption is the Secure Sockets Layer (SSL). Originally developed by Netscape, SSL is an Internet security protocol used by Internet browsers and Web servers to transmit sensitive information. SSL has become part of an overall security protocol known as Transport Layer Security (TLS).


Look for the "s" after "http" in the address whenever you are about to enter sensitive information, such as a credit-card number, into a form on a Web site.

In your browser, you can tell when you are using a secure protocol, such as TLS, in a couple of different ways. You will notice that the "http" in the address line is replaced with "https," and you should see a small padlock in the status bar at the bottom of the browser window.


The padlock symbol lets you know that you are using encryption.

Public-key encryption takes a lot of computing, so most systems use a combination of public-key and symmetry. When two computers initiate a secure session, one computer creates a symmetric key and sends it to the other computer using public-key encryption. The two computers can then communicate using symmetric-key encryption. Once the session is finished, each computer discards the symmetric key used for that session. Any additional sessions require that a new symmetric key be created, and the process is repeated.

Hashing Algorithms

The key in public-key encryption is based on a hash value. This is a value that is computed from a base input number using a hashing algorithm. Essentially, the hash value is a summary of the original value. The important thing about a hash value is that it is nearly impossible to derive the original input number without knowing the data used to create the hash value. Here's a simple example:

Input number

Hashing algorithm

Hash value

10,667

Input # x 143

1,525,381

You can see how hard it would be to determine that the value 1,525,381 came from the multiplication of 10,667 and 143. But if you knew that the multiplier was 143, then it would be very easy to calculate the value 10,667. Public-key encryption is actually much more complex than this example, but that is the basic idea.

Public keys generally use complex algorithms and very large hash values for encrypting, including 40-bit or even 128-bit numbers. A 128-bit number has a possible 2128

or

3,402,823,669,209,384,634,633,746,074,300,000,000,000,000,000,000,000,000,000,000,000,000 different combinations! This would be like trying to find one particular grain of sand in the Sahara Desert.

Authentication

As stated earlier, encryption is the process of taking all of the data that one computer is sending to another and encoding it into a form that only the other computer will be able to decode. Another process, authentication, is used to verify that the information comes from a trusted source. Basically, if information is "authentic," you know who created it and you know that it has not been altered in any way since that person created it. These two processes, encryption and authentication, work hand-in-hand to create a secure environment.

There are several ways to authenticate a person or information on a computer:

  • Password - The use of a user name and password provides the most common form of authentication. You enter your name and password when prompted by the computer. It checks the pair against a secure file to confirm. If either the name or the password does not match, then you are not allowed further access.
  • Pass cards - These cards can range from a simple card with a magnetic strip, similar to a credit card, to sophisticated smart cards that have an embedded computer chip.
  • Digital signatures - A digital signature is basically a way to ensure that an electronic document (e-mail, spreadsheet, text file) is authentic. The Digital Signature Standard (DSS) is based on a type of public-key encryption method that uses the Digital Signature Algorithm (DSA). DSS is the format for digital signatures that has been endorsed by the U.S. government. The DSA algorithm consists of a private key, known only by the originator of the document (the signer), and a public key. The public key has four parts. If anything at all is changed in the document after the digital signature is attached to it, it changes the value that the digital signature compares to, rendering the signature invalid.

Recently, more sophisticated forms of authentication have begun to show up on home and office computer systems. Most of these new systems use some form of biometrics for authentication. Biometrics uses biological information to verify identity. Biometric authentication methods include:

  • Fingerprint scan
  • Retina scan
  • Face scan
  • Voice identification

Checking for Corruption

Another secure-computing need is to ensure that the data has not been corrupted during transmission or encryption. There are a couple of popular ways to do this:

  • Checksum - Probably one of the oldest methods of ensuring that data is correct, checksums also provide a form of authentication because an invalid checksum suggests that the data has been compromised in some fashion. A checksum is determined in one of two ways. Let's say the checksum of a packet is 1 byte long. A byte is made up of 8 bits, and each bit can be in one of two states, leading to a total of 256 (28 ) possible combinations. Since the first combination equals zero, a byte can have a maximum value of 255.
    • If the sum of the other bytes in the packet is 255 or less, then the checksum contains that exact value.
    • If the sum of the other bytes is more than 255, then the checksum is the remainder of the total value after it has been divided by 256.

Let's look at a checksum example:

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

Byte 8

Total

Checksum

212

232

54

135

244

15

179

80

1,151

127

  • 1,151 / 256 = 4.496 (round to 4)
  • 4 x 256 = 1,024
  • 1,151 - 1,024 = 127
  • Cyclic Redundancy Check (CRC) - CRCs are similar in concept to checksums, but they use polynomial division to determine the value of the CRC, which is usually 16 or 32 bits in length. The good thing about CRC is that it is very accurate. If a single bit is incorrect, the CRC value will not match up. Both checksum and CRC are good for preventing random errors in transmission but provide little protection from an intentional attack on your data. Symmetric- and public-key encryption techniques are much more secure.

All of these various processes combine to provide you with the tools you need to ensure that the information you send or receive over the Internet is secure. In fact, sending information over a computer network is often much more secure than sending it any other way. Phones, especially cordless phones, are susceptible to eavesdropping, particularly by unscrupulous people with radio scanners. Traditional mail and other physical mediums often pass through numerous hands on the way to their destination, increasing the possibility of corruption. Understanding encryption, and simply making sure that any sensitive information you send over the Internet is secure (remember the "https" and padlock symbol), can provide you with greater peace of mind.

Sunday, July 29, 2007

Safty measures to use internet with atmost care....

Ten thumb rules followed during internet access

It may sound clichéd to hear that Internet is the future.

However, despite the potential and prospects of the medium, many people scared to use it due to security fears (I know my friend will not use internet banking with ICICI and Punjab national bank where has the online accounting facility). At the same time, those who use the Internet often fumble when it comes to security. Here are 10 thumb rules to keep your personal information secure when online.

Favor common sense over technological solutions. Keep personal documents safe, preferably in a locked drawer. Shred bank statements, credit card slips and bills before throwing them away.

Rule 1


Never open unsolicited "spam" messages. Delete e-mails offering cash, free gifts or stock tips. Millions of unsolicited "spam" messages are sent every day in an attempt to defraud computer users.


Rule 2

Basic prevention helps. Protect your computer against identity theft. Install security

software to combat viruses, spy ware and spam and keep it updated.

Rule 3

Know enough about your firewall, the barrier between the public Internet and a personal computer, to know when it is working and when it isn't. Don't worry about the geeky complexity of it all, just know it's operating.

Rule 4

Beware of "phishing", where criminals trick people into revealing personal or financial

details, often by sending e-mails purporting to be from a bank. Never casually reply

to requests for your personal financial details.

Rule 5

Keep your private e-mail address secure. Consider using different e-mail accounts for

shopping, banking, friends and work. There are many free account providers.

Rule 6

Do not use the same password for different sites. Choose passwords with a mix of letters, numbers and symbols. Don't use obvious passwords, such as your first name or "123456" and don't write them down. For memory's sake, choosing a basic root word, then rotating numbers, is safer.

Rule 7

Make online payments safely. Never enter a card number unless there is a padlock in the Web browser's frame, rather than the Web page. The Web address should begin with "https" -- the extra "S" stands for "secure". Consider reserving one credit card for Web use or signing up for a separate online payment service like PayPal.

Rule 8

Secure your wireless network at home and be wary when using public access points. Encrypt the connection to scramble communications over the network.

Rule 9

Turn off the wireless network when you're not using it.

Rule 10

Treat your laptop computer like cash -- never leave it in a locked car or turn your back while using it in a public place. The same holds true with your mobile phone: Lock your phone (and any passwords you keep on it) when not using it.

Thursday, July 26, 2007

How do I get Visual Studio to recognize .cc files as c++ source files?

Use the /Tp option of the compiler to instruct it to assume the file is C++. You can put this in as a custom build rule, or modify some registry settings to add .cc to the list of file extensions recognized as C++.

The key to modify is:

HKEY_CURRENT_USER\Software\Microsoft\DevStudio\X.0\Build System\Components\Platforms\Win32 (x86)\Tools\32-bit C/C++\Input_Spec

and

HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Build System\Components\Tools\\Input_Spec

where X is the DevStudio version (5 or 6). You'll probably want to modify the following key to get automatic source code syntax coloring:

HKEY_CURRENT_USER\Software\Microsoft\DevStudio\X.0\Text Editor\Tabs/Language Settings\C/C++\FileExtensions


This method is nicer because it will save you a lot of work setting up the custom build rules. However, you still have to add the /TP switch manually to the Project Settings to get the compiler to fully recognize the file as C++. The downside: You won't be able to mix C and C++ files in the project, in which case, the only option is using custom build rules.

IMPORTANT: This procedure contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article numbers to view the Microsoft Knowledge Base articles:

256986 - Description of the Microsoft Windows Registry

322756 - HOW TO: Back Up, Edit, and Restore the Registry in Windows XP.

Wednesday, July 25, 2007

Next Windows Operating System name is Windows version 7

New Microsoft OS name “Windows Version 7”

Software giant Microsoft is planning to ship its next major version of Windows -- currently known as version "7" internally -- within three years, according to media reports

A Microsoft representative was quoted as saying that "Microsoft is scoping Windows 7 development to a three-year time frame." Interestingly, a subscription model is also being considered for the future Windows.

The acknowledgment follows last week's conference of the software giant's sales force, Microsoft's Global Exchange, held in Orlando to outline the company's post-Vista future.

"Microsoft is scoping Windows '7' development to a three-year timeframe, and then the specific release date will ultimately be determined by meeting the quality bar," the representative said.

"In the meantime, Microsoft is dedicated to helping customers deploy and get the most business value from their PCs using Windows Vista and related technologies like the Microsoft Desktop Optimization Pack, and we're encouraged by the response and adoption of these products so far."

Very few details are currently available about plans for the new OS other than that it will have 32- and 64-bit versions and will ship in consumer and business editions like Vista.

Microsoft said the outline of Windows 7 was provided particularly for corporate customers who are part of the software maker's Software Assurance licensing program. Many business customers pay for Microsoft's software under a license agreement called Software Assurance.

Microsoft has been criticized by business customers for delays related to Vista. Vista development was marked by numerous delays as Microsoft moved the release date. The entire development of Vista spanned five years until its eventual release in November 2006 for businesses and January 2007 for consumers.

According to media reports, Microsoft seems to be trying hard to reassure customers about its development cycle after a recent Forrester study that criticized its business-oriented subscription program (Software Assurance). The study raised questions about the financial benefits of Software Assurance program.

Software Assurance is the Microsoft program that allows customers with volume licenses for Windows automatically get upgrades when new versions come out.

In fact, according to a new Gartner report, Microsoft is making several business tools available only via Software Assurance, and Gartner expects this trend to continue.

Saturday, July 21, 2007

User level secruity in Mac OS X

OS 10.4 Security Tip

I would like to shed some light on the different types of user accounts that can be created and operated in OS 10.4. Knowledge of the different account types can help keep your computer secure.

User

The User account is the least privileged account. It allows a user to modify settings for his/her own account but not for others and cannot modify the universal settings. For multiple users of a single system you can further limit user accounts to prevent them from changing system preferences, removing items from the Dock, changing passwords, burning CDs or DVDs or using some installed applications.

Admin

The Admin account can perform many of the operations normally associated with the root user. An Admin account can add or delete User files, but typically cannot otherwise modify the contents of the User file. Admin accounts can modify the System folder by using the Installer or Software Update applications.

Root

The Root user is a superuser (su), which has full permissions for anything. Root users can execute any file and can access, read, modify or delete any file in any directory. Unlike most UNIX systems this superuser Root access is turned off by default and most Mac users will never have to access Root. This protects your Mac from those that might do damage by acting as a root user.

Every user on every computer should have a password assigned to him or her. Many people are always logged into the Admin account by default, which is a security risk.

For an extra level of security, you can do what Morgan at Small Dog does - he creates an Admin account, and then creates his own non- admin user account for himself to use. The Admin account is the first account he creates on his computer, and then he creates the user account. You create the secondary user account in "Accounts" in "System Preferences." Here's how we do it:

  1. Browse to System Preferences > Accounts.
  2. Create a new user, with a new name and password.
  3. Click on the button that says, "Allow user to administer this computer."
  4. Select your previous Account.
  5. De-select the button that says, "Allow user to administer this computer." The non-Admin will have all the data, bookmarks, and software that were created when it was an Admin Account. The Admin won't have this data, but in most cases should not need it.

Even if you've always been logged into your computer as an Admin, it's not too late to go back and demote yourself to user with the instructions above.

If you need both users to have access to all data, there may be some UNIX script that would allow you to do that.

Let me know if you have any other suggestions or queries!

Friday, July 20, 2007

Zapping PRAM in Macintosh.....

What is Zapping PRAM in Mac OS X?

Sometimes we may heard Macintosh computer technicians say a computer needs its PRAM zapped. For most of us, this sounds very odd, and maybe even a little obscene. But don't worry; it's a standard part of the Mac troubleshooting routine.

PRAM stands for "parameter random access memory." A document in Apple's knowledge base reads:

"PRAM stores certain system and device settings in a location that Mac OS X can access quickly. Exactly which settings are stored in the computer's PRAM varies depending on the type of computer as well as the types of devices and drives connected to the computer. Parameter RAM is a small area of non-volatile RAM (NVRAM)."

Because PRAM is "Non-volatile RAM," it will store data even when the computer is turned off. It will also typically store data when the computer automatically shuts off due to severe battery drain.

According to Apple, some of the data stored in PRAM includes:

  • Display and video settings such as refresh rate, screen resolution, number of colors
  • Time zone setting
  • Startup volume choice
  • Speaker volume
  • Recent kernel panic information, if any exist
  • DVD region setting

Many issues can be resolved by "zapping the PRAM." This includes issues such as Macs that are flashing a question mark when powered on, to missing pictures on the iMac G5's display, to computers that simply won't power up at all. PRAM can be corrupted by faulty (typically third party) software, power surges, and electromagnetic interference.

In most Macs you can "zap the pram" by powering the computer on, then immediately holding down the Command, Option, P, and R keys simultaneously. The Command key is the one with the cloverleaf or Apple on it.

According to Apple, OS X does not store network settings in PRAM. If you experience a network issue, resetting PRAM will not help.

If PRAM is reset, you may need to verify your time zone, startup volume, and volume settings using System Preferences. Certain firmware updates may reset PRAM as a normal part of their installation process."

Note that zapping PRAM is different than resetting the Power Management Unit (PMU,) which you might have to do on certain Apple laptops.

Apple says "A PMU reset should not be necessary except as a last resort in cases where a hardware failure of the power management system is suspected. Performing a PMU reset returns the iBook and PowerBook hardware, including NVRAM, to default settings and forces the computer to shut down."

Friday, July 13, 2007

Useful Microsoft outlook tips for real time users

Microsoft Outlook TIPS AND TRICKS

Collection of tips for getting around in Outlook focuses on using multiple Outlook windows and controlling how Outlook starts up.

Opening a New Window on Outlook

If one Information Viewer is nice, would two be twice as nice? Possibly, where you’re dragging many items from one folder to another or want to see two different views of the same information. Or maybe you want to leave your Inbox right where you stopped reading messages, but take a quick look at another folder.

To open a folder in a new window, right-click on the folder name in the Folder List, in the Folder Banner above the Information Viewer, or on the Outlook Bar, then choose Open in New Window.


Opening Outlook to a Particular Folder

It’s possible to launch Outlook so that it always opens to a particular Outlook or system folder. Choose Tools, Options, then select from the “Startup in this folder” list on the General tab.

Another method is to start Outlook from a shortcut with a special command. Create a shortcut to the Outlook.exe program. (A quick way to do this is to right-click the Outlook icon on the desktop, then choose Create Shortcut.) In the Properties dialog box for the new shortcut, type a space after the command in the Target box, then add the path to the folder you want to open, enclosed in quotation marks. If you run one of these shortcuts when Outlook is already started, the folder opens in its own window, without the Outlook Bar or Folder List.

To specify an Outlook folder path, use “Outlook:” followed by the folder name. For example,

 
  "C:\Program Files\Microsoft Office\Office\Outlook.exe"
  "Outlook:Calendar"
 

would open the Calendar folder. Of course, you might need to adjust the path to Outlook.exe to match the way your system is set up. You can use this technique not just for the initial launch of Outlook, but also to create shortcuts to other folders you’d like to use in their own windows.

Another use for this method is to open system folders. For example,

 
 "C:\Program Files\Microsoft Office\Office\Outlook.exe"
 "C:\My Documents"
 

would open the My Documents folder on your C: drive. You won’t be prompted for your Outlook profile.

Starting Outlook with Command Line Switches


There are also several switches for creating new items, starting with a particular profile, or cleaning up the Outlook Bar. You can add any of the switches listed in the following table

TABLE 9.3: OUTLOOK COMMAND LINE SWITCHES

Hide the Outlook Bar

/folder

Always open the Choose Profiles dialog box

/profiles

Start Outlook with a specific profile

/profile “

Create an e-mail message

/c ipm.note

Create a post

/c ipm.post

Create an appointment

/c ipm.appointment

Create a task

/c ipm.task

Create a contact

/c ipm.contact

Create a journal entry

/c ipm.activity

Create a note

/c ipm.stickynote

Create an item with the specified message class

/c

Create a message with the specified file as an attachment (To create an item other than a message, use with a /c switch.)

/a “

Create a message from a file that’s dragged and dropped on the shortcut

/c ipm.note “%1”

Create a message addressed to a particular recipient

/c ipm.note /m “

Clean and regenerate free/busy information (for Microsoft Exchange Server only)

/CleanFreeBusy

Restore missing folders for the default information store

/ResetFolders

Rebuild the Outlook Bar

/ResetOutlookBar

Clean and regenerate reminders

/Cleanreminders

with the “C:\Program Files\Microsoft Office\Office\Outlook.exe” command in a shortcut. Where quotation marks are shown, they must be included in the command. For items in angle brackets, substitute the specific information, such as the specific profile name to be used as the /profile switch.



Activating the Horizontal Scroll Bar

Normally, the Information Viewer does not display a horizontal scroll bar, but instead adjusts the width of all columns to fit into the available space. If you prefer to set specific column widths and scroll the display to see all the information, choose View, Format View. In the Format Table View dialog box

clear the box for “Automatic column sizing.” The horizontal scroll bar then appears in the Information Viewer.

Wednesday, July 11, 2007

What is Bitwise operators and how it works....?

Bitwise (Boolean) logic operators


Because microcontrollers store numbers in binary, it is possible to use a special kind of operator on data. These operators are described as Bitwise logic, because they obtain results based on the logical relationships of individual bits. Bitwise logic is also known as Boolean logic or Boolean math.

There are 7 Bitwise operators:

PICBASIC Operator

Description

~

Bitwise NOT

&

Bitwise AND

|

Bitwise OR

^

Bitwise Exclusive OR (XOR)

&/

Bitwise NOT AND (NAND)

|/

Bitwise NOT OR (NOR)

^/

Bitwise NOT Exclusive OR (XNOR)

The simplest of these is the NOT (~) operator. It returns the logical opposite of the tested bit. This operator is unique in that it only requires 1 bit as input. All the other operators require 2 bits.


Using Bitwise operators on individual bits

NOT (~)

When describing the function of Bitwise operations, we use a diagram call a "truth table". It shows the input bit (or bits) on the left, and the result on the right. Since the NOT operator only has one input, the truth table looks like this:

A

~A

0

1

1

0

PICBASIC example:

result = ~ A

AND (&)

AND compares 2 bits and returns logic high only if both input bits are high.

A

B

A & B

0

0

0

0

1

0

1

0

0

1

1

1

PICBASIC example:

result = A & B

OR (|)

OR compares 2 bits and returns a logic high if either or both inputs are high.

A

B

A | B

0

0

0

0

1

1

1

0

1

1

1

1

PICBASIC example:

result = A | B

XOR (^)

XOR compares 2 bits and returns logic high only if a single input is high. If both inputs are high, it returns logic low

A

B

A ^ B

0

0

0

0

1

1

1

0

1

1

1

0

PICBASIC example:

result = A ^ B

NAND (&/)

NAND compares 2 bits and returns logic low if both inputs are high.

A

B

A &/ B

0

0

1

0

1

1

1

0

1

1

1

0

PICBASIC example:

result = A &/ B

NOR (|/)

NOR compares 2 bits and returns logic low if either or both inputs are high.

A

B

A |/ B

0

0

1

0

1

0

1

0

0

1

1

0

PICBASIC example:

result = A |/ B

XNOR (^/)

XNOR compares 2 bits and returns logic low only if a single input is high. If both inputs are high, it returns logic high.

A

B

A ^/ B

0

0

1

0

1

0

1

0

0

1

1

1

PICBASIC example:

result = A ^/ B


Using Bitwise operators on bytes and words

When you use byte or word sized data as inputs for Bitwise operators, the result can be as long as your longest input. The operator will perform a comparison of each bit in both input variables, and store the result in the corresponding bit location of the result variable.

A common example is the AND operator used to mask certain bits in a byte. It works as a mask because it always returns 0 when one of the inputs is 0. Therefore, when we use "bytevar & %00001111", the top 4 bits of the result will always be 0. The lower 4 bits won't change, because ANDing something with logic 1 makes the result equal to the input.

Here's a modified truth table showing 8-bits being ANDed all at once.

bit position

byte A

byte B

A & B

7

1

0

0

6

0

0

0

5

1

0

0

4

1

0

0

3

0

1

0

2

1

1

1

1

1

1

1

0

0

1

0

PICBASIC example:

A = %10110110
B = %00001111
result = A & B

'(00000110)

Here are some example equations using the input values above:

%10110110 | %00001111 = %10111111 'use OR to mask bits with logic 1

%10110110 ^ %00001111 = %10111001 'use XOR to invert selected bits

Let me know your queries to me (Elango C)