怎样把char型数组转存为int型数组? 怎么把一个int数组转化为char型数组??

java\u4e2d\u628achar\u578b\u6570\u7ec4\u8f6c\u6362\u6210int\u578b\u6570\u7ec4\u600e\u4e48\u505a?

public class Test {
public static void main(String[] args){
char[] ch = {'3','5','2','4','0','8','1'};
int[] toInt = new int[ch.length];
for(int i=0;i<ch.length;i++){
toInt[i] = Integer.parseInt(String.valueOf(ch[i]));
System.out.print(toInt[i]);
}
}
}

\u6211\u7684\u7a0b\u5e8f\u662f\u6b63\u786e\u7684,\u81f3\u4e8e\u4f60\u7684\u4e3a\u4ec0\u4e48\u9519\u8bef\u5462?\u539f\u56e0\u5728\u4e8eint[] a={}\u8fd9\u91cc,\u4f60\u7ed9a\u8fd9\u4e2a\u6570\u7ec4\u5206\u914d\u7684\u7a7a\u95f4\u662f0,\u90a3\u4e48\u5b83\u600e\u4e48\u53ef\u4ee5\u5b58\u50a87\u4e2a\u6570\u5b57\u5462? \u5e94\u8be5\u8fd9\u6837\u5199:int[] a=new int[7];\u6216int[] a=new int[ch.length]; \u5475\u5475..

\u5047\u5b9aint\u548cchar\u6570\u7ec4\u5982\u4e0b\uff1a
int I[2]={1,2}
char c[2]={1,2}
\u4e24\u8005\u8f6c\u6362\u4ee3\u7801\uff1a
int a[2] = {1, 2};
char c[2];
for( int i = 0; i < 2; i++ ) c[i] = a[i];

Int\u662f\u5c06\u4e00\u4e2a\u6570\u503c\u5411\u4e0b\u53d6\u6574\u4e3a\u6700\u63a5\u8fd1\u7684\u6574\u6570\u7684\u51fd\u6570\uff0c\u4e3a\u53d6\u6574\u51fd\u6570\u3002
char\u662fC/C++\u6574\u578b\u6570\u636e\u4e2d\u6bd4\u8f83\u53e4\u602a\u7684\u4e00\u4e2a\uff0c\u5176\u5b83\u7684\u5982int/long/short\u7b49\u4e0d\u6307\u5b9asigned/unsigned\u65f6\u90fd\u9ed8\u8ba4\u662fsigned\uff0c\u4f46char\u5728\u6807\u51c6\u4e2d\u662funsigned\uff0c\u7f16\u8bd1\u5668\u53ef\u4ee5\u5b9e\u73b0\u4e3a\u5e26\u7b26\u53f7\u7684\uff0c\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u4e3a\u4e0d\u5e26\u7b26\u53f7\u7684\uff0c\u6709\u4e9b\u7f16\u8bd1\u5668\u5982pSOS\u7684\u7f16\u8bd1\u5668\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u7f16\u8bd1\u5f00\u5173\u6765\u6307\u5b9a\u5b83\u662f\u6709\u7b26\u53f7\u6570\u8fd8\u662f\u65e0\u7b26\u53f7\u6570\u3002

#include <stdio.h>
#include <string.h>
typedef unsigned char uchar;
typedef unsigned int  uint;
//转换函数
//Temp 字符型数组
//pOut int型数组
//length 字符型数组的长度
//这里假设字符型数组里包含的都是偶数个元素
//如果是奇数个数,则需要增加如下处理:
//检查length是否是奇数,如果是,动态分配length+1个char大小的数组
//数据全部清零,并且把Temp的内容拷贝到动态分配的数组中
//按照下面长度是偶数的情况处理
//释放动态分配的内存
//这里根据问题要求,应该是以小端序来存放int类型的
//如果更智能一些,可以写一个检查字节序的函数来处理
void Exchange(const uchar *Temp, uint *pOut, uchar length)
{
    int i = 0;
    for (; i < length / 2; i++)
    {
        //小端序,直接按原来的顺序拷贝过去
        //如果是大端序,则可以改变一下字节序
        memcpy(pOut, Temp, 2);
        pOut++;//int型指针后移一位
        Temp+=2;//字符型字节后移两位    
    }
}
//测试代码
int main(void)
{
    int i;
    uint array[20] = {0};
    uchar Start[] = {0x80,0xF1,0x58,0x03,0xC1,0xEA,0x8F,0x06};
    Exchange(Start, array, sizeof(Start));
    for (i = 0; i < 20; i++)
    {
        if (array[i] != 0)
        {
            printf("0x%04X ", array[i]);
        }        
    }    
    printf("
");
    return 0;
}

输出截图:



其实可以不转换,用指针访问即可,比如你的例子:
short int *array=(short int *)Start;
则printf("%x %x %x %x\n",array[0],array[1],array[2],array[3]);得到的结果就是
F180 0358 EAC1 068F

void Exchange(uchar *Temp, uchar length, uint *pout)
{
int i;
uchar *p;
p = (uchar*)pout;

for (i = 0; i < length; i++)
{
p[i] = Temp[i];
}
//memcpy(pout, Temp, length); //效率更高

//必须考虑 length 为奇数时的情况
if (length % 2)
p[i] = 0;
}

  • 濡備綍灏哻har绫诲瀷杞崲鎴恑nt绫诲瀷?
    绛旓細绗竴绉嶅姙娉曪細閫氳繃charAt(i)锛屾妸瀛楃涓茬殑姣忎綅鍙樻垚char鍨嬶紝鐒跺悗鐢ㄥ綋鍓嶅瓧绗﹀噺鍘诲瓧绗0锛坱emp_char-'0'锛夛紝寰楀埌褰撳墠瀛楃鐨刬nt鍊笺傜浜岀鍔炴硶锛氭妸瀛楃鍐嶈浆鎴愬瓧绗︿覆锛岀劧鍚庡啀寮哄埗杞崲鎴恑nt鍨嬨2銆佹妸瀛楃涓叉媶鍒嗘垚涓浣嶄竴浣嶇殑 绗竴绉嶆柟娉曪細寰幆鍚巆harAt(i)锛涙敞鎰忥細charAt(i)寰楀埌鐨勬槸瀛楃涓插搴旂殑姣忎綅瀛楃锛...
  • char鏁扮粍 杞寲涓篿nt鏁扮粍 鎬庝箞杞寲.
    绛旓細棣栧厛 鍙栧嚭鏁扮粍涓殑姣忎竴涓厓绱 鐒跺悗鐢–++鍑芥暟 int atoi(char* c);杞崲灏卞彲浠ヤ簡 鎶婅浆鎹浠ュ悗鐨勫彉閲忔斁杩涙暟缁
  • char 绫诲瀷鐨勬暟缁鍙笉鍙互杞涓篿nt绫诲瀷鐨勬暟缁?
    绛旓細濡傛灉char绫诲瀷鐨勬暟缁琛ㄧず涓涓瓧绗︿覆鐨勮瘽锛屼篃灏辨槸鏈変釜鑷礋绛変簬'\0'鐨勮瘽锛屽苟涓旈噷杈硅鐨勫紡鏁板瓧鐨勮瘽锛屽氨鍙互杞崲涓篿nt绫诲瀷銆俢har aBuffer[100];aBuffer[0]='1';aBuffer[1]='\0';鍙互杩欐牱杞崲 int nData;int nResult;nResult=sscanf(aBuffer,"%d",&nData);if (nResult==1){ printf("杞崲...
  • 鎬庢牱鎶奵har鍨嬫暟缁勮浆瀛樹负int鍨嬫暟缁?
    绛旓細include <stdio.h>#include <string.h>typedef unsigned char uchar;typedef unsigned int uint;//杞崲鍑芥暟//Temp 瀛楃鍨嬫暟缁//pOut int鍨嬫暟缁//length 瀛楃鍨嬫暟缁勭殑闀垮害//杩欓噷鍋囪瀛楃鍨嬫暟缁勯噷鍖呭惈鐨勯兘鏄伓鏁颁釜鍏冪礌//濡傛灉鏄鏁颁釜鏁帮紝鍒欓渶瑕佸鍔犲涓嬪鐞嗭細//妫鏌ength鏄惁鏄鏁帮紝濡傛灉鏄紝鍔ㄦ佸垎閰...
  • 鍦╟++涓char绫诲瀷鐨勬暟缁閲岃竟瑁呯殑鏄暟瀛,濡備綍杞崲涓篿nt绫诲瀷?
    绛旓細cha鍜宺int鏁扮粍杞崲锛屼緥锛歩ntI[2]={1,2} charc[2]={1,2} 涓よ呰浆鎹唬鐮侊細inta[2]={1,2};charc[2];for(inti=0;i<2;i++)c[i]=a[i];Int鏄皢涓涓暟鍊煎悜涓嬪彇鏁翠负鏈鎺ヨ繎鐨勬暣鏁扮殑鍑芥暟锛屼负鍙栨暣鍑芥暟銆
  • 濡備綍灏哻har鍨嬫暟缁勮浆鎹鎴恑nt鍨嬫暟缁?
    绛旓細瀵逛簬鍏ぇ鍩烘湰鏁版嵁鍨嬬殑澶勭悊锛杞崲锛屽湪Lang鍖呬腑鏈夌浉瀵瑰簲鐨勫叓澶у寘瑁呯被锛屼綘璇寸殑杩欑杞崲锛屽瓧绗﹀繀椤绘槸瑕佹槸鏁板瓧鐨勶紝瑕佷笉鐒朵細鏈夊紓甯哥殑锛屽叿浣撴槸閭d釜鏂规硶锛屾垜璁板緱涓嶆槸寰堟竻妤氫簡锛屼綘鍘绘壘涓鎵撅紝鍦↗AVA.Lang鍖呬腑锛岃涔堝湪 Integer閲岄潰锛岃涔堝湪 Character 閲岄潰锛岀粷瀵规湁鐨勶紝鎴戜互鍓嶇敤杩囥
  • java鎬庝箞鎶瀛楃鍨嬫暟缁勮浆鎹负int鍨?
    绛旓細for(inti=0;i
  • java涓鎶奵har鍨嬫暟缁勮浆鎹鎴恑nt鍨嬫暟缁鎬庝箞鍋?
    绛旓細Integer.parseInt(String.valueOf(ch[i]));System.out.print(toInt[i]);} } } 鎴戠殑绋嬪簭鏄纭殑,鑷充簬浣犵殑涓轰粈涔堥敊璇憿?鍘熷洜鍦ㄤ簬int[] a={}杩欓噷,浣犵粰a杩欎釜鏁扮粍鍒嗛厤鐨勭┖闂存槸0,閭d箞瀹冩庝箞鍙互瀛樺偍7涓暟瀛楀憿? 搴旇杩欐牱鍐:int[] a=new int[7];鎴杋nt[] a=new int[ch.length]; 鍛靛懙.....
  • 姹傚姪,C璇█涓char鍨2缁鏁扮粍鎬庝箞杞鎴恑nt鍨!!!
    绛旓細鍦–涓紝鍙互灏哻har鍨鐪嬪仛int鍨嬶紝鍙灏嗘瘡涓浣嶅噺鍘48浠h〃鐨勫氨鏄畠鐨勬暟鍊笺俻rintf("%d\n",(b[0][0]-48)*10+b[0][1]-48);
  • char鏁扮粍 杞 int鏁扮粍 c++
    绛旓細鎴戝氨璁ょ湡鐨勫洖绛斾竴娆″惂
  • 扩展阅读:java声明char型数组 ... 如何把int类型转成char ... c语言char怎么用 ... 把一个字符串转成char数组 ... char数组转list ... char数组转化为int ... 怎么把char转换为qstring ... c语言给数组赋值的方法 ... char型二维数组怎么赋值 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网