int类型以及字符串从左到右变换

来源:互联网 发布:淘宝店铺卖衣服名字 编辑:程序博客网 时间:2024/06/13 21:46
把int类型的值按二进制模式从左到右变换
#include <stdio.h>void swap(int *value){printf("value:%x\n",*value);/**value = ((*value)&0xff000000) >> 24 | \ ((*value)&0x00ff0000)  >> 8 |\ ((*value)&0x0000ff00) << 8 |\ ((*value)&0x000000ff) << 24;*/int i=0;int n=sizeof(int)*8;printf("int length:%d\n",n);int revalue=0;for(i=0;i<=n/2;i++){revalue |= (((*value&(1<<i))<<(n-2*i-1)) \| ((*value&(1<<(n-i-1)))>>(n-2*i-1)));}*value = revalue;}int main(void){int a;scanf("%d",&a);printf("a:%d\n",a);swap(&a);printf("a:%x\n",a);return 0;}


字符串左右互换:

#include <stdio.h>#include <string.h>#include <malloc.h>void recerse_string(char *str){int len=0;char *string=str;if(str == NULL)return;while(*(str++) != '\0')len++;printf("str len:%d str:%s\n",len,str);int i=0;char c;for(i=0;i<len/2;i++){c = *(string+i);*(string+i) = *(string+len-i-1);*(string+len-i-1) = c;}printf("string:%s\n",string);}int main(void){char *str;str=malloc(10*sizeof(char));scanf("%s",str);recerse_string(str);printf("str:%s\n",str);free(str);return 0;}

原创粉丝点击