Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void printBinaryLE(void* v, unsigned int s)
- {
- if(!v||s<1)
- {
- printf("error !\n");
- return;
- }
- unsigned char* pv = (unsigned char*) v;
- unsigned int i;
- while(s--)
- {
- i=8;
- while(i--)
- {
- printf("%d", pv[s] >> i & 1u ? 1 : 0);
- }
- }
- printf("\n");
- }
- int main (int argc, char **argv)
- {
- printf("%zubit machine\n\n",sizeof(void*)*8);
- int val = 1;
- printf("%s\n\n",*(char*)&val == 0 ? "big-endian" : "little-endian");
- printf("char\n");
- char cV = 0x0F;
- printBinaryLE(&cV, sizeof(cV));
- printf("\n");
- printf("unsigned char\n");
- unsigned char ucV = 0xF0;
- printBinaryLE(&ucV, sizeof(ucV));
- printf("\n");
- printf("short\n");
- short shV = 0x0F0F;
- printBinaryLE(&shV, sizeof(shV));
- printf("\n");
- printf("unsigned short\n");
- unsigned short ushV = 0xF0F0;
- printBinaryLE(&ushV, sizeof(ushV));
- printf("\n");
- printf("int\n");
- int iV = 0x0F0F0F0F;
- printBinaryLE(&iV, sizeof(iV));
- printf("\n");
- printf("unsigned int\n");
- unsigned int uiV = 0xF0F0F0F0;
- printBinaryLE(&uiV, sizeof(uiV));
- printf("\n");
- printf("long\n");
- long lV = 0x0F0F0F0F0F0F0F0F;
- printBinaryLE(&lV, sizeof(lV));
- printf("\n");
- printf("unsigned long\n");
- unsigned long ulV = 0xF0F0F0F0F0F0F0F0;
- printBinaryLE(&ulV, sizeof(ulV));
- printf("\n");
- printf("long long\n");
- long long llV = 0x0F0F0F0F0F0F0F0F;
- printBinaryLE(&llV, sizeof(llV));
- printf("\n");
- printf("unsigned long long\n");
- unsigned long long ullV = 0xF0F0F0F0F0F0F0F0;
- printBinaryLE(&ullV, sizeof(ullV));
- printf("\n");
- printf("float\n");
- float fV = -10.01f;
- printf("decimal: %f\n",fV);
- printBinaryLE(&fV, sizeof(fV));
- printf("\n");
- printf("double\n");
- double dV = -10.01;
- printf("decimal: %f\n",dV);
- printBinaryLE(&dV, sizeof(dV));
- printf("\n");
- printf("long double\n");
- long double ldV = -10.01;
- printf("decimal: %Lf\n",ldV);
- printBinaryLE(&ldV, sizeof(ldV));
- printf("\n");
- return 0;
- }
- /*
- output:
- 64bit machine
- little-endian
- char
- 00001111
- unsigned char
- 11110000
- short
- 0000111100001111
- unsigned short
- 1111000011110000
- int
- 00001111000011110000111100001111
- unsigned int
- 11110000111100001111000011110000
- long
- 0000111100001111000011110000111100001111000011110000111100001111
- unsigned long
- 1111000011110000111100001111000011110000111100001111000011110000
- long long
- 0000111100001111000011110000111100001111000011110000111100001111
- unsigned long long
- 1111000011110000111100001111000011110000111100001111000011110000
- float
- decimal: -10.010000
- 11000001001000000010100011110110
- double
- decimal: -10.010000
- 1100000000100100000001010001111010111000010100011110101110000101
- long double
- decimal: -10.010000
- 00000000000000000000000000000000000000000000000011000000000000101010000000101000111101011100001010001111010111000010100000000000
- */
Advertisement
Add Comment
Please, Sign In to add comment