函数:itoa(integer to array)
功能:把一整数转换为字符串
用法:char *itoa(int value, char *string, int radix); 将int整型数转化为一个字符串,并将值保存在数组string中。
value: 待转化的整数。
radix:是基数的意思,即先将value转化为radix进制的数,范围介于2-36,比如10表示10进制,16表示16进制。
* string:保存转换后得到的字符串。
返回值:
char *:指向生成的字符串, 同*string。
头文件:"stdlib.h"
方法一:itoa函数 itoa函数将数值转换为字符串,通过规定转换进制实现。 #include<stdio.h> #include<stdlib.h> //注意必须调用stdlib.h函数库 int main(void) { while(1) { int a; printf("请输入一个十进制数: "); scanf("%d",&a); char str[30]; itoa(a,str,2);//2即是代表转换为2进制 printf("转换成二进制数是: %s\n\n",str); } return 0; }
#include<stdio.h> int main(void){ int a,b,k,i; int remainder[30]; //定义了一个remainder数组,用来收集短除法除得的余数,栈倒序输出。 a=1000; k=0; while(a!=0){ b=a/2; k++; remainder[k]=a-b*2; a=a/2; }; for (i=k;i>=1;i--){ printf("%d",remainder[i]); } return 0; }
转载结束。
与 0x00ff 按位与运算,可以实现高字节清零,低字节不变。(short int 类型)
#include<stdio.h> int main() { const unsigned int a = 0x00ff; unsigned int x; scanf("%x",&x); x = x&a; printf("%x",x); return 0; }
与0x00ff按位或运算,可以实现低字节置位为1, 高字节不变,(short int 类型)
#include<stdio.h> #include<stdlib.h> int main() { char str[100];// 用来存储二进制数。 while(1) { short int x; scanf("%hx",&x); // h 修饰short。 itoa(x,str,2);// 进制转化 printf("what you enter: %s\n",str); short int con = 0x00ff; itoa(con,str,2); printf("0x00ff:%s\n",str); short int x_1 = x&con; itoa(x_1,str,2); printf("after &, x turn into: %s\n",str); short int x_2 = x|con; itoa(x_2,str,2); printf("after |, x turn into: %s\n",str); } return 0; }
#include<stdio.h> #include<stdlib.h> int main() { while(1) { char str_1[20], str_2[20]; short int x_1, x_2; scanf("%hx %hx",&x_1, &x_2); itoa(x_1, str_1, 2); printf("str_1: %016s\n",str_1); itoa(x_2, str_2, 2); printf("str_2: %016s\n", str_2); short int x = x_1^x_2; char str[20]; itoa(x,str,2); printf("str_x: %016s\n",str); } return 0; }
注: 可以实现特定位的翻转。
去掉n 个二进制位 右边补上n个0
右边去掉n个二进制位,从左边补上n个二进制位。
对于无符号整数,左边一律补0, 右边一律补其符号位。
原文:https://www.cnblogs.com/zhang-zsq/p/12813955.html