69,371
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>
#define Length 8
void show_bin(const char *);
char * int_to_bin(int, char *);
int bin_to_int(char *);
int _tmain(int argc, char * argv[])
{
char str1[Length] = "";
char str2[Length] = "";
char * str3;
str3 = (char*)malloc(sizeof(char) * Length + 1);
int n1 = 0, n2 = 0;
printf("Please enter str1:");
scanf("%s", str1);
while (getchar() != '\n')
continue;
printf("Please enter str2:");
scanf("%s", str2);
while (getchar() != '\n')
continue;
n1 = bin_to_int(str1);
n2 = bin_to_int(str2);
printf("n1 is %d. n2 is %d.\n", n1, n2);
printf("Operation & result is ");
int_to_bin((n1 & n2), str3);
show_bin(str3);
printf("Operation | result is ");
int_to_bin((n1 | n2), str3);
show_bin(str3);
printf("Operation ^ result is ");
int_to_bin((n1 ^ n2), str3);
show_bin(str3);
free(str3);
system("PAUSE");
return 0;
}
char * int_to_bin(int n, char *ps)
{
int i = 0;
const static int size = CHAR_BIT * sizeof(int);
ps = (char*)malloc(sizeof(char) * size + 1);
for (i = size - 1; i >= 0; i--, n >>= 1)
{
ps[i] = (char)((01 & n) + '0');
}
ps[size] = '\0';
return ps;
}
int bin_to_int(char *ps)
{
size_t length = 0;
length = strlen(ps);
int value = 0, cheng2 = 1;
for (size_t i = 0; i < length; i++)
{
cheng2 = 1;
for (size_t j = 0; j < i; j++)
{
cheng2 *= 2;
}
value += cheng2 * (int)(ps[length - i - 1] - '0');
}
return value;
}
void show_bin(const char * str)
{
int i = 0;
while (str[i])
{
putchar(str[i]);
if (++i % 4 == 0 && str[i])
{
putchar(' ');
}
}
printf("\n");
}
str3 = int_to_bin((n1 & n2), str3);
show_bin(str3);
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <limits.h>
#include <ctype.h>
#define Length 9
void show_bin(const char *);
char * int_to_bin(int);
char * int_to_bin111(int, char *);
int bin_to_int(char *);
int _tmain(int argc, char * argv[])
{
char str1[Length] = "";
char str2[Length] = "";
const static int size = CHAR_BIT * sizeof(int);
//char bin_str[CHAR_BIT * sizeof(int) + 1];
//char * str3 = (char*)malloc(sizeof(char) * Length + 1);
char * bin_str22 = (char*)malloc(sizeof(char) * size + 1);
int n1 = 0, n2 = 0;
printf("Please enter str1:");
scanf("%s", str1);
while (getchar() != '\n')
continue;
printf("Please enter str2:");
scanf("%s", str2);
while (getchar() != '\n')
continue;
n1 = bin_to_int(str1);
n2 = bin_to_int(str2);
printf("n1 is %d. n2 is %d.\n", n1, n2);
printf("Operation & result is ");
//str3 = int_to_bin((n1 & n2));//int_to_bin((n1 & n2), str3);
int_to_bin111((n1 & n2), bin_str22);
//show_bin(str3);
//printf("********* & result is ");
show_bin(bin_str22);
printf("\n");
printf("Operation | result is ");
//str3 = int_to_bin((n1 | n2));
int_to_bin111((n1 | n2), bin_str22);
//show_bin(str3);
//printf("********* | result is ");
show_bin(bin_str22);
printf("\n");
printf("Operation ^ result is ");
//str3 = int_to_bin((n1 ^ n2));
int_to_bin111((n1 ^ n2), bin_str22);
//show_bin(str3);
//printf("********* ^ result is ");
show_bin(bin_str22);
printf("\n");
//free(str3);
free(bin_str22);
system("PAUSE");
return 0;
}
char * int_to_bin(int n)//char * int_to_bin(int n, char *)
{
int i = 0;
const static int size = CHAR_BIT * sizeof(int);
char * ps = (char*)malloc(sizeof(char) * size + 1);
for (i = size - 1; i >= 0; i--, n >>= 1)
{
ps[i] = (char)((01 & n) + '0');
}
ps[size] = '\0';
return ps;
}
char * int_to_bin111(int n, char * ps)//char * int_to_bin(int n, char *)
{
int i = 0;
const static int size = CHAR_BIT * sizeof(int);
//char * ps = (char*)malloc(sizeof(char) * size + 1);
for (i = size - 1; i >= 0; i--, n >>= 1)
{
ps[i] = (char)((01 & n) + '0');
}
ps[size] = '\0';
return ps;
}
int bin_to_int(char *ps)
{
size_t length = 0;
length = strlen(ps);
int value = 0, cheng2 = 1;
for (size_t i = 0; i < length; i++)
{
cheng2 = 1;
for (size_t j = 0; j < i; j++)
{
cheng2 *= 2;
}
value += cheng2 * (int)(ps[length - i - 1] - '0');
}
return value;
}
void show_bin(const char * str)
{
int i = 0;
while (str[i])
{
putchar(str[i]);
if (++i % 4 == 0 && str[i])
{
putchar(' ');
}
}
printf("\n");
}
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <limits.h>
#include <ctype.h>
#define Length 9
void show_bin(const char *);
char * int_to_bin(int);
char * int_to_bin111(int, char *);
int bin_to_int(char *);
int _tmain(int argc, char * argv[])
{
char str1[Length] = "";
char str2[Length] = "";
//const static int size = CHAR_BIT * sizeof(int);
char * str3;
char bin_str[CHAR_BIT * sizeof(int) + 1];
str3 = (char*)malloc(sizeof(char) * Length + 1);
int n1 = 0, n2 = 0;
printf("Please enter str1:");
scanf("%s", str1);
while (getchar() != '\n')
continue;
printf("Please enter str2:");
scanf("%s", str2);
while (getchar() != '\n')
continue;
n1 = bin_to_int(str1);
n2 = bin_to_int(str2);
printf("n1 is %d. n2 is %d.\n", n1, n2);
printf("Operation & result is ");
str3 = int_to_bin((n1 & n2));
int_to_bin111((n1 & n2), bin_str);
show_bin(str3);
printf("********* & result is ");
show_bin(bin_str);
printf("\n");
printf("Operation | result is ");
str3 = int_to_bin((n1 | n2));
int_to_bin111((n1 | n2), bin_str);
show_bin(str3);
printf("********* | result is ");
show_bin(bin_str);
printf("\n");
printf("Operation ^ result is ");
str3 = int_to_bin((n1 ^ n2));
int_to_bin111((n1 ^ n2), bin_str);
show_bin(str3);
printf("********* ^ result is ");
show_bin(bin_str);
printf("\n");
free(str3);
system("PAUSE");
return 0;
}
char * int_to_bin(int n)//char * int_to_bin(int n, char *)
{
int i = 0;
const static int size = CHAR_BIT * sizeof(int);
char * ps = (char*)malloc(sizeof(char) * size + 1);
for (i = size - 1; i >= 0; i--, n >>= 1)
{
ps[i] = (char)((01 & n) + '0');
}
ps[size] = '\0';
return ps;
}
char * int_to_bin111(int n, char * ps)
{
int i = 0;
const static int size = CHAR_BIT * sizeof(int);
//char * ps = (char*)malloc(sizeof(char) * size + 1);
for (i = size - 1; i >= 0; i--, n >>= 1)
{
ps[i] = (char)((01 & n) + '0');
}
ps[size] = '\0';
return ps;
}
int bin_to_int(char *ps)
{
size_t length = 0;
length = strlen(ps);
int value = 0, cheng2 = 1;
for (size_t i = 0; i < length; i++)
{
cheng2 = 1;
for (size_t j = 0; j < i; j++)
{
cheng2 *= 2;
}
value += cheng2 * (int)(ps[length - i - 1] - '0');
}
return value;
}
void show_bin(const char * str)
{
int i = 0;
while (str[i])
{
putchar(str[i]);
if (++i % 4 == 0 && str[i])
{
putchar(' ');
}
}
printf("\n");
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int main() {
int i,v;
char bs[33];
char b[33];
char hs[9];
char h[9];
char s[4];
char *e;
// 十进制整数转二进制串;
i=1024;
ltoa(i,b,2);
sprintf(bs,"%032s",b);
printf("i=%d,bs=%s\n",i,bs);
// 十进制整数转十六进制串;
i=1024;
ltoa(i,h,16);
sprintf(hs,"%08s",h);
printf("i=%d,hs=%s\n",i,hs);
// 十六进制字符串转成十进制数
strcpy(hs,"00000400");
sscanf(hs,"%x",&i);
printf("hs=%s,i=%d\n",hs,i);
// 二进制字符串转化为十六进制字符串;
strcpy(bs,"00000000000000000000010000000000");
i=strtol(bs,&e,2);
ltoa(i,h,16);
sprintf(hs,"%08s",h);
printf("bs=%s,hs=%s\n",bs,hs);
// 二进制字符串转化为十进制数;
strcpy(bs,"00000000000000000000010000000000");
i=strtol(bs,&e,2);
printf("bs=%s,i=%d\n",bs,i);
// 十六进制字符串转成二进制串
strcpy(hs,"00000400");
sscanf(hs,"%x",&i);
ltoa(i,b,2);
sprintf(bs,"%032s",b);
printf("hs=%s,bs=%s\n",hs,bs);
// ASC\GBK字符串转十六进制串
strcpy(s,"a汉");
i=0;
while (1) {
if (0==s[i]) break;
sprintf(hs+i*2,"%02X",(unsigned char)s[i]);
i++;
}
setlocale(LC_ALL,"chs");
printf("s=%s,hs=%s\n",s,hs);
// 十六进制字符串转成汉字(GBK)及字符(ASC)
strcpy(hs,"61BABA");
i=0;
while (1) {
if (1!=sscanf(hs+i*2,"%2x",&v)) break;
s[i]=(char)v;
i++;
}
s[i]=0;
printf("hs=%s,s=%s\n",hs,s);
return 0;
}
//i=1024,bs=00000000000000000000010000000000
//i=1024,hs=00000400
//hs=00000400,i=1024
//bs=00000000000000000000010000000000,hs=00000400
//bs=00000000000000000000010000000000,i=1024
//hs=00000400,bs=00000000000000000000010000000000
//s=a汉,hs=61BABA
//hs=61BABA,s=a汉
char * int_to_bin(int);
char str1[Length+1] = "";
char str2[Length+1] = "";
char * int_to_bin(int n)
{
int i = 0;
const static int size = CHAR_BIT * sizeof(int);
char* ps = (char*)malloc(sizeof(char) * size + 1);
//memset(ps,0,sizeof(char)*(size+1));
for (i = size - 1; i >= 0; i--, n >>= 1)
{
ps[i] = ((01 & n)+'0');
}
ps[size] = '\0';
return ps;
}