Dyskusja:C/Operatory: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
→Operacje_bitowe: nowa sekcja |
m →Operacje_bitowe: nowy kod |
||
Linia 72:
<source lang=c>
#include <stdio.h>
/*
https://stackoverflow.com/questions/699968/display-the-binary-representation-of-a-number-in-c
Chris Lutz
*/
void PrintBitsOfUChar(unsigned char v) {
int i; // for C89 compatability
for(i = 7; i >= 0; i--) putchar('0' + ((v >> i) & 1));
}
void TestBitwiseNot (unsigned char a ){
printf ("decimal number a = %3u;\t ", a );
printf ("it's binary expansion = ");
PrintBitsOfUChar(a);
printf("\n");
printf ("it's binary expansion = ");
PrintBitsOfUChar((unsigned char) ~a);
printf("\n");
}
int main ()
{
//unsigned char a;
//char buffer[8];
▲ printf ("a = %u;\t ~a = %u\n", a ,(unsigned char) ~a);
printf("unsigned char has size = 1 byte = 8 bits and range from 0 to 255\n\n");
TestBitwiseNot(0);
TestBitwiseNot(255);
TestBitwiseNot(5);
TestBitwiseNot(3);
return 0;
Linia 90 ⟶ 124:
gcc b.c -Wall
./a.out
unsigned char has size = 1 byte = 8 bits and range from 0 to 255
decimal number a = 0; it's binary expansion = 00000000
decimal number ~a = 255; it's binary expansion = 11111111
decimal number a = 255; it's binary expansion = 11111111
decimal number ~a = 0; it's binary expansion = 00000000
decimal number a = 5; it's binary expansion = 00000101
decimal number ~a = 250; it's binary expansion = 11111010
decimal number a = 3; it's binary expansion = 00000011
decimal number ~a = 252; it's binary expansion = 11111100
</source>
|