c语言:如何把一个整数按位保存在一个字符数组里,然后再读取出来还原为一个整数

问题描述

c语言:如何把一个整数按位保存在一个字符数组里,然后再读取出来还原为一个整数
void WitedataToFlash(void)
 {
   unsigned char i;
   sprintf(datal, "%luunsignedlong", gdvolt);
     for(i=0;i<11;i++)
   EEPROM_write(0x01+i,datal[i]);

 }
 /*************************************************************************
* 名称: readdataToFlash()
* 功能:  eeprom里独读出数据
* 参数: 无
* 返回: 无
*************************************************************************/
void readdataToFlash(void)
 {
 unsigned char i;
 unsigned char j;
   for(i=0;i<11;i++)

   {
    datal[i]=EEPROM_read(0x01+i);
   }
   for(j=0;j<11;j++)
   sum_volt+=(datal[j]-0x30)*(10^j);
 }

单片机程序,gvolt为长整型,我想把它保存在字符数组datal[i]中,
后面读的程序里,用 sum_volt+=(datal[j]-0x30)*(10^j); 这样行得通吗

解决方案

datal[i]为定义的数组啊,定义为全局变量了

解决方案二:

参考Converting Integer to Character and Vice Versa

解决方案三:

不知道你用的是哪个单片机,
sprintf(datal, "%luunsignedlong", gdvolt);
是不是等同于 一般意义上的
sprintf(datal, "%011d", 100);
如果是的话可以啊,
但不是的话,你得处理不够长的时候

for(j=0;j<11 && data[j] !=0 ;j++)
sum_volt+=(datal[j]-0x30)*(10^j);

读写 EEPROM 看你自己的单片机吧,方案是可行的

解决方案四:

不懂单片机但是可以说下思路。
先判断整数位数,然后用求余和整除分别拿到各位上的数字,然后分别+‘0’存入数组相应的位置。
拿出来的时候也是先判断数组位数,然后分别由char型转换成int型(参考atoi())再拼成原来的整数。

解决方案五:

参考代码段
https://github.com/707wk/Senior-middle-school/blob/master/Filling%20in%20the%20gaps.c

时间: 2024-11-03 20:57:08

c语言:如何把一个整数按位保存在一个字符数组里,然后再读取出来还原为一个整数的相关文章

c语言-C语言里想要用函数创建一个新的字符数组,并使其等于原有的一个字符数组该怎么做?

问题描述 C语言里想要用函数创建一个新的字符数组,并使其等于原有的一个字符数组该怎么做? #include #include #include char map[4][4]; char creat()//创建一个新的字符数组 { char *maze=(char)malloc(sizeof(map)); return maze; } void main() { int i,j; for(i=0;i<4;i++) { gets(map[i]); } char *maze=creat(); strc

判断一个字符串是否包含在一个字符串数组里,

问题描述 我是想判断一个字符串是否包含在一个字符串数组里,如果是返回true,否则返回false,但我这个怎么运行都是falsepackageU_14_java;publicclassTest{publicstaticvoidmain(Stringargs[]){Testt=newTest();Strings[]={"王","五","六"};Stringa="六";booleanb=false;t.BiJiao(s,a,b);

问一个java gui问题,在一个窗体中,两个conboBox,改变上一个,怎么让下面一个显示为空。

问题描述 问一个java gui问题,在一个窗体中,两个conboBox,改变上一个,怎么让下面一个显示为空. 问一个java gui问题,在一个窗体中,两个conboBox,改变上一个,怎么让下面一个显示为空.是看起来为空 解决方案 你需要把它们放在同一个panel里把 然后就可以得到你想要的结果

javascript-怎样在一个新窗口里打开本php页面中的一个函数写成的html页面

问题描述 怎样在一个新窗口里打开本php页面中的一个函数写成的html页面 如题:我在写一个登录+注册的页面,他们让我把所有的东西都写进一个php文件中,我把登录页面写成一个函数,注册 页面写成一根函数.问题是如何在登录界面点击一个按钮是在新窗口中打开注册页面.就是怎么 调用那个注册页面的函数?? 我用js大概写成这样.但是没效果啊.求大神!!! soory!不会发图片.第一次提问,也没那什么币.大家将就下 解决方案 用jquery直接弹出一个层,$(#"你的层div").(你的htm

一个arraylist里面有byte和byte数组,如何将该arraylist转换成一个byte数组

问题描述 我在一个arraylist里面保存了byte类型和byte数组类型.我现在使用toarray到byte数组的方法提示有错误.我应该怎么做才能使整个arraylist变成一个byte数组.然后我要讲这个byte数组保存成文件. 解决方案 本帖最后由 zzt8899 于 2012-04-09 10:38:35 编辑解决方案二:再说明下..最后我是要将0x7e这样的格式保存到文件中的解决方案三:谁能帮忙下...解决方案四:ay.ToArray().SelectMany(x=>x).ToArr

这样判断一个字符串是否在一个字符串数组里会有什么问题?如果去掉sort会有什么后果,不是太清楚

问题描述 package demo8;import java.util.Arrays;public class StringInArray {public static void main(String[] args) {String[] arrays = new String[]{"中国", "印度", "巴西", "阿根廷", "美国", "加拿大","俄罗斯",

有一个关于整型指针二维数组的问题

问题描述 有一个关于整型指针二维数组的问题 int x[4][4]y[4][4]z=0o=0;//z表示的是当前矩阵中的非零数字的数量,z为16则说明数字排满了,本局输了 //o表示最大数字的值,本例设定的是1024typedef int row[4]; //row代表具有4个元素的整型数组row p=x *q=y;//P是整型指针数组,有4组,每组有4个元素.p[1]=x[1]=(x+1) 这是别人写的2048源码的一部分,想问一下,这里为什么要先定义一个有4个元素的整型数组,然后再用这个去定

C++语言基础-字符数组

奇怪的是,C++不支持字串变量(放置文本的变量),C++程序中的字串是用char数据类型的数组表示的.例如,可以将变量赋予char数组如下: char text[] = "This is a string."; 这就在内存中分配18字节的内存空间用于存放字串.根据你的领悟能力,也许你会发现该字串中只有17个字符.分配18个字节的原因是字串要以终止null结尾,C++在分配内存空间时把终止null算作一个字符. 新术语 终止null是个特殊字符,用|0表示,等于数值0.程序遇到字符数组中

jdbc-mysql的datetime 类型读取之后为什么多一个.0

问题描述 mysql的datetime 类型读取之后为什么多一个.0 mysql的datetime类型YYYY-MM-DD HH:MM:SS java读取之后为什么多一个.0 比如在数据库中是2015-12-12 12:12:12但jdbc读取之后转成Date却是2015-12-12 12:12:12.0 里面有什么奥妙之处吗 解决方案 这个问题最有可能的是你指定的日期格式有问题,你可以查查资料再改一下: 如果回答对您有帮助,请采纳 解决方案二: datetime精确度很高的 如果不想这么精确