c语言 输入进来n位二进制数,依次截取16位放在二维数组里面,怎么实现例如f[0][0]=(输入的0到15位)

作者&投稿:大狐咽 (若有异议请与网页底部的电邮联系)
c语言中 怎样从32位二进制数据中截取低16位?有现成的函数吗?如果没有如何实现?~

我也碰到了类似的问题
void convert(int32 temp)
{
uint16 t1,t2;
t1=temp&0x0000FFFF;
t2=temp>>16;
t2=temp&0x0000FFFF;
}
其中t1放的是低16位,t2放的是高16位 你看看合理不?

#include
main()
{
long i,x;
printf("请输入一个整数:");
scanf("%ld",&x);
printf("它的从右开始的第11-8位为:
");
for(i=11;i>7;i--)
printf("%d",(x&(10);
printf("
");
}

用位移操作
#include <stdio.h>

#define m_size 10
#define n_size 10

int main()
{
int i = 0;
int bit = 0;
int f[m_size][n_size] = {0};

for(i=0; i<16; i++)
{
scanf("%d", &bit);
f[0][0] = bit | (f[0][0] << 1);
/*这句是把后输入的数字放在低位.如果想把后输入的数字放高位改成f[0][0] = (bit<<i) | f[0][0];*/
}

return 1;
}


松溪县17814647160: c语言 输入进来n位二进制数,依次截取16位放在二维数组里面,怎么实现例如f[0][0]=(输入的0到15位) -
郯董奥孚: 用位移操作#include <stdio.h>#define m_size 10#define n_size 10 int main() { int i = 0; int bit = 0; int f[m_size][n_size] = {0}; for(i=0; i<16; i++) { scanf("%d", &bit); f[0][0] = bit | (f[0][0] << 1);/*这句是把后输入的数字放在低位.如果想把后输入的数字放高位改成f[0][0] = (bit<<i) | f[0][0];*/} return 1; }

松溪县17814647160: C语言输入n个二进制数,输出1的个数 -
郯董奥孚: 用字符串 处理,等于1.就讲计数器加1.

松溪县17814647160: c语言实现以二进制位的方式写文本文件.运行8次,每次输入一个二进制位,最后打开检查文件. -
郯董奥孚: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47本程序只实现了功能,应再加一些错误检查才好,鉴于实现复杂,影响主题,就不写了 #include <stdio.h>...

松溪县17814647160: 用C语言编写二进制数运算模拟程序 -
郯董奥孚: 用数组模拟就行. 思路: 1、将输入转化成二进制数,逆序存入数组中. 2、用两数组模拟四则运算,并将运算的结果存入第三个数组中. 3、逆序输出第三个数组. 希望对你有帮助!

松溪县17814647160: VC环境下,用C语言编程“输入二进制数,输出十进制数,”
郯董奥孚: #include<stdio.h>void main() {char a[20],*p;int n=0; printf("输入1个2进制数:");scanf("%s",a);for(p=a;*p;p++)n=n*2+*p-'0';printf("%d",n); }

松溪县17814647160: C语言输入一个整数,截取它对应的二进制位中从右到左的第8 - 11位(最右边为第0位). -
郯董奥孚: 代码在下面,不过要输入转换成二进制的位数超过或者11位的才行,否则会错误,当然你也可以加点判断,我这就懒得写了 #include "stdio.h" main() { while(1) { int a,i,j; int c[100]; i=0; printf("ÇëÊäÈëÒ»¸öÕûÊý:"); scanf("%d",&a); while(a!=1) { c[i]=a%2; a=a/2; i=i+1; } c[i]=1; for(j=11;j>7;j--) { printf("%d\n",c[j]); } } }

松溪县17814647160: C语言中怎么输出数据的二进制 -
郯董奥孚: 没有专门的输出二进制语句 需要自己写函数. 比如 void print_bin(int n) {int i;for(i=sizeof(n)*4-1; i>=0; i --){if(n&(1<<i))printf("1");else printf("0");} }这个是通过位操作 来打印一个int型的所有二进制值的函数.

松溪县17814647160: C语言输入任意一个数字转化为二进制,十进制,八进制,十六进制 -
郯董奥孚: #include<stdio.h> void showbit(int n) {if(n>1){showbit(n/2);printf(" ");}printf("%d",n%2); } void showoct(int n) {if(n>7){showoct(n/8);printf(" ");}printf("%d",n%8); } void showhex(int n) {if(n>15){showhex(n/16);printf(" ");}...

松溪县17814647160: 二进制数的运算 C语言程序运算 -
郯董奥孚: 这个可以通过按位或运算来做://---------------------------------------------------------------------------#include <stdio.h>int main(void) {int a=15<<4|15;/*1111B=15D*/printf("%d",a); return 0; } //---------------------------------------------------------------------------

松溪县17814647160: c语言,从键盘上输入一个正整数,按二进制输出该数,同时分别对第五位取反,第六位置一,第七位清零, -
郯董奥孚: 二进制用数组存储的话后面的就很容易了呀

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网