A. 用c语言实现四个字节数到一个整形数的转换。
#include <陆握锋stdio.h>皮戚
int main(){
long int x1 = 0x00;
long int x2 = 0x01;
long int x3 = 0xe2;
long int x4 = 0x40;
long int result = (x1 <早晌< 24) + (x2 << 16) + (x3 << 8) + x4;
printf("0x%08lx, %ld\n", result, result);
return 0;
}
B. C语言中如何利用指针把4字节的浮点型数据理解为由2个整型数据构成的
我觉得可以这样
double x;
int i, j;
int * p;
p = (int *)&x;
i = *p;
j = *(p+2);
但是 事实上 这样做没物袭有任何意义
因为int型的数据在内存中是以补码的形式储存的罩庆兄
而double是以符号位 指数位 分差源数位的形式储存的
C. C语言编写一个程序:读取任何二进制文件,并将文件内所有字节按相反排序存入另一文件中
#include<stdio.h>
#defineFILE_NAME"E:/2.bin"//读取的文件名
#defineNEW_FILE_NAME"E:/2$.bin"//新文件名
intmain()
{
intindex=1;
FILE*pfile_forread=fopen(FILE_NAME,"r");
FILE*pfile_forwrite=fopen(NEW_FILE_NAME,"w");
if(!pfile_forread||!pfile_forwrite)
return1;
while(!fseek(pfile_forread,-index,SEEK_END))//这里是关键,把文件的位置放设置为相对轮返厅文件末尾的位
{
世渗chardata;
if(fread(&data,1,1,pfile_forread))//在pfile_forread中读一个字节
{
fwrite(&data,1,1,pfile_forwrite);//把读到的数据写入pfile_forwrite
printf("%d ",data);
}
腊隐if(!ftell(pfile_forread))//如果起始位置和当前位置一样了就退出循环
break;
index++;
}
fclose(pfile_forread);
fclose(pfile_forwrite);
return0;
}
D. C语言怎么把得出来的数字反过来
对于一个整数,反向取出每一位的值比较方便,每次输出个位,然后将数缩小10倍,再循环输出新数的个位。
而若要正向输出整数的每一位,还使用上面的思路就行不通了,采用递归方法是最佳的处理方式(这也是递归应用的一个经典例子):
#include<stdio.h>
voidreverse(intn)
{
if(n>0)//如果n大于0
{
reverse(n/10);//先输出高位的结果
printf("%2d",n%10);//再输出当前的最低位
}
}
intmain()
{
intn;
printf("inputn:");
scanf("%d",&n);
reverse(n);
return0;
}
E. 用c语言把一个数字反过来
用c语言把一个数字反过来可以参考下面的烂和没代码:
#include <stdio.h>
#include <string.h>
void main()
{
char str[100];
printf("请输入一个数:");
gets(str);
printf("%s ",strrev(str));
}
(5)c语言把四个字节数据反过来扩展阅读:
printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);
其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"棚此开始, 后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数饥纳个数一样多, 各参数之间用","分开。
F. c语言如何把数字顺序颠倒
颠倒方法:
用算法实现将一个输入的数字颠倒(输入12345->54321),要求不调用任何系统函数,也不能将输入的数字转换为字符串作为中间过渡,就可以颠倒了。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
C语言含义:
C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
G. c语言中编写函数实现字节反转,具体要求如下:(会做帮下忙,谢谢)
C语言中无法直接输出二进制数的。我的程序中输出16进制数,看起来也相对方便一点。毕竟16进制和2进制的转换是非常方便的。
#include<stdio.h>
#define BYTE unsigned char
BYTE reverse(BYTE m)
{
BYTE x,y;
BYTE result=0;
x=0x80;y=0x01;
while(x!=0)
{
if(m & y) result+=x;
x>>=1;
y<<=1;
}
return result;
}
void main()
{
printf("%x\n",reverse(0x55));
}
H. 求助c语言编写一个字节位互换
支持任意两位互换.
运行结果:
00000110 /* 输入数字, 23位是1 45位是0 */
00001010 /* 34互换后 */
00011000 /* 25也互换后 */
代码:
#include <stdio.h>
unsigned char mask(int n)
{
return 1 << (n-1);
}
void setbit(unsigned char *in, unsigned char n, unsigned char value)
{
if(value) (*in) |= mask(n);
else (*in) &= (~mask(n));
}
unsigned char getbit(unsigned char in, unsigned char n)
{
unsigned char value = in & mask(n);
if(value) return 1;
else return 0;
}
void swap(unsigned char *in, int m, int n)
{
unsigned char valuem = getbit(*in, m);
unsigned char valuen = getbit(*in, n);
setbit(in, n, valuem);
setbit(in, m, valuen);
}
void showbin(unsigned char x)
{
int i;
for(i=8;i>=1;i--){
printf("%d", getbit(x, i));
}
printf("\n");
}
int main()
{
/* 3位是1,, 2位是1, 4位是0, 5位是0. */
unsigned char a = mask(3) | mask(2);
showbin(a);
/* 34互换 */
swap(&a, 3, 4);
showbin(a);
/* 25互换 */
swap(&a, 2, 5);
showbin(a);
return 0;
}
I. c语言如何将一行数字反过来
写个函数给你吧!稍等
#define_CRT_SECURE_NO_WARNINGS/*vs2013编译器需要加这个*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineDEF_MAX_NUM1024
intfunc_num(constchar*str1,char*str2)
{
chartmp_char;
intstr_len=0;
char*p1=NULL;
char冲滑激*p2=NULL;
if(NULL==str1)
{
printf("err%d ",__LINE__);
return让仔-1;
}
strcpy(str2,str1);
str_len=strlen(str2);
if(1>=str_len)
{
printf("err%d ",__LINE__);
return-2;
}
p1=str2;
p2=str2+str_len-1;
while(p2>p1)
{
tmp_char=*p2;
*p2=*p1;
*p1=tmp_char;
++p1;
--p2;
}
return0;
}
intmain()
{
charStr1[DEF_MAX_NUM];
charStr2[DEF_MAX_NUM];
intret=0;
ret=scanf("%s",Str1);
if(0==ret)
{
printf("输入失败 ");
}
ret=func_num(Str1,Str2);
if(0>ret)
{
printf("err&d ",__LINE__);
return-1;
}
printf("%s ",Str2);
system("散袜pause");
return0;
}
J. C语言从文件读入4个字节,对数据进行修改,再重新写回到文件中原来的位置,为什么会陷入死循环
既然是读入4个字节,那么一般是不会到文件结尾的,就不得脊尺用!feof(fp)控制。feof(fp)是试图越过文件结束符模野此读取字符时才返回非0值。再有data是什么类型旦迅?data=~data;的操作是否合适?