将十进制转换为二进制<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我需要将数据列(十进制)转换为二进制(8 位),然后将 4 LSB 连接到具有 4 MSB 的下一列数据。有没有办法在 JMP 中至少将十进制数据转换为二进制?
回复:将十进制转换为二进制如前所述:
嗨 - 你能调整以下内容来做你需要的吗?
<SPAN>// Function to convert an integer into any positive base up to hexadecimal;</SPAN><BR />base = Function( {n, nbase}, {default local},
ndash = "";
digits= "0123456789ABCDEF";
While( n > 0,
remainder= Mod( n, nbase );
newdigit= Substr( digits, (1 + remainder), 1 );
ndash= newdigit || ndash;
n= (n - remainder)/ nbase;
);
ndash;
);
// Print out a few numbers to show it working in binary;
For( i = 1, i <= 32, i++, Show( Char( i ) || " = " || base( i, 2 ) ) );
// Or create some new columns in a data table and fill them;
dt = New Table( "Number Bases", New Column( "N", numeric, values( Index( 1, 32 ) ) ) );
numberbase = {2, 3, 8, 10, 12, 16}; // Some familiar number bases;
For( i = 1, i <= N Items( numberbase ), i++,
k= numberbase[i];
dt<< New Column( "Base "|| Char( k ), character );
For( j = 1, j <= N Row( dt ), j++,
Column( dt, ("Base "|| Char( k )) )[j] = base( j, k ) );
);
// End of program;
和:
没问题 - 额外的“if”子句会将 n=0 视为特殊情况:
base = function({n, base}, {default local}, ndash = ""; digits = "0123456789ABCDEF";
if(n > 0, while(n > 0, remainder = mod(n, base); newdigit = substr(digits, (1 + remainder), 1);
ndash = newdigit || ndash; n = (n - remainder) / base), ndash = "0"); ndash);
(我假设 n 是一个非负整数,而 base 是一个正整数。)
回复:将十进制数转换为二进制数您好,请问您能否修改以下代码以满足您的需求?
// 将整数转换为任何正进制(包括十六进制)的函数;
根据= 功能( {n,nbase }, {默认本地},
— = "" ;
数字= "0123456789ABCDEF" ;
尽管( n > 0,
余数= 反对 ( n , nbase ) ;
newdigit = 子字符串 ( digits , ( 1 + remainder ) , 1 ) ;
ndash = newdigit || — ;
n= (n -余数) / nbase ;
);
—;
);
// 打印一些数字,以显示二进制的工作原理;
为了( i = 1, i <= 32, i++,展示( 查尔( i ) || “ = “ ||基础( i, 2 ) ) );
或者在数据表中创建一些新列并填充它们;
dt= 新表格( “数制”, 新专栏( “N”,数字,值(指数( 1, 32 ) ) ) );
数基= {2, 3, 8, 10, 12, 16}; // 一些常见的进制;
为了( i = 1, i <= N 项(数基), i++,
k=数基[ i ];
dt<< 新专栏( “根据 ”|| 查尔( k ),特点);
为了( j = 1, j <= N 排(dt ), j++,
柱子(dt, (“根据 ”|| 查尔( k )) )[j] =根据(j, k ) );
);
// 程序结束;
回复:将十进制数转换为二进制数这是一个好的开始。但看起来该函数无法将零转换为二进制 0。