十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
int n=5;
我们提供的服务有:成都网站制作、成都网站设计、外贸营销网站建设、微信公众号开发、网站优化、网站认证、雨城ssl等。为上1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的雨城网站制作公司
double x=3.141592654;
while(n0) //取出小数后n位
{
x=x*10; //更新x值,把小数点后第一位放在个位上
printf("%d\n",(int)x%10); //int强制把double转换成int,因为求余必须为int类型, //而%10求余,是求个位上的数字
i--;
}
bit是二进制的位的意思 如果你要操作位 最好用位运算符 等
128的二进制表示: 10000000
从右往左数第八位是1
答案也简单:
C语言版:
int getbit(int n, int k){
return (n(k-1)) 1;
}
我有点没搞明白(45、81、673938)取最后一位是怎么得出5138的,不是518吗?
但还是随便写一下吧
#include stdio.h
#include stdlib.h
int getLastBit(int number);
int main()
{
int i = 0, n = 0;
int number = 0, newnumber = 0;
printf("输入整数个数:");
scanf("%d", n);
for(i = 1; i = n; i++)
{
scanf("%d", number);
newnumber *= 10;
newnumber += getLastBit(number);
}
printf("新整数是:%d\n", newnumber);
return 0;
}
int getLastBit(int number)
{
if(number = 0)
{
printf("错误!\n");
exit(1);
}
else
return number%10;
}
C语言中bit类型是“位”数据类型,一般在嵌入式软件中应用较多,用于IO口的控制,可以是单独申明位变量,也可以申请位结构数据类型,比如:
struct st_flash { /* struct FLASH */
union { /* FLMCR1 */
unsigned char BYTE; /* Byte Access */
struct { /* Bit Access */
unsigned char FWE :1; /* FWE */
unsigned char SWE1:1; /* SWE1 */
unsigned char ESU1:1; /* ESU1 */
unsigned char PSU1:1; /* PSU1 */
unsigned char EV1 :1; /* EV1 */
unsigned char PV1 :1; /* PV1 */
unsigned char E1 :1; /* E1 */
unsigned char P1 :1; /* P1 */
} BIT;
} FLMCR1;
union { /* FLMCR2 */
unsigned char BYTE; /* Byte Access */
struct { /* Bit Access */
unsigned char FLER:1; /* FLER */
unsigned char SWE2:1; /* SWE2 */
unsigned char ESU2:1; /* ESU2 */
unsigned char PSU2:1; /* PSU2 */
unsigned char EV2 :1; /* EV2 */
unsigned char PV2 :1; /* PV2 */
unsigned char E2 :1; /* E2 */
unsigned char P2 :1; /* P2 */
} BIT;
} FLMCR2;
union { /* EBR1 */
unsigned char BYTE; /* Byte Access */
struct { /* Bit Access */
unsigned char EB7:1; /* EB7 */
unsigned char EB6:1; /* EB6 */
unsigned char EB5:1; /* EB5 */
unsigned char EB4:1; /* EB4 */
unsigned char EB3:1; /* EB3 */
unsigned char EB2:1; /* EB2 */
unsigned char EB1:1; /* EB1 */
unsigned char EB0:1; /* EB0 */
} BIT;
} EBR1;
union { /* EBR2 */
unsigned char BYTE; /* Byte Access */
struct { /* Bit Access */
unsigned char EB15:1; /* EB15 */
unsigned char EB14:1; /* EB14 */
unsigned char EB13:1; /* EB13 */
unsigned char EB12:1; /* EB12 */
unsigned char EB11:1; /* EB11 */
unsigned char EB10:1; /* EB10 */
unsigned char EB9 :1; /* EB9 */
unsigned char EB8 :1; /* EB8 */
} BIT;
} EBR2;
};
1 测试指定的位
unsigned char BitTst(unsigned char *Pa,char b)//Pa为被测试的对象的地址,b值为指定的位
{
return *Pa (1b);
}
用法:
unsigned char x,y;
y=0x4F;
x=BitTst(y,3);
2 将指定的位置“1”
void BitSet(unsigned char *Pa,char b)//Pa为置位对象的地址,b值为指定的位
{
*Pa|=1b;
}
用法:BitSet(x,6);
3 将指定的位清“0”
void BitClr(unsigned char *Pa,char b)//Pa为清零位对象的地址,b值为指定的位
{
*Pa=~(1b);
}
用法:BitClr(x,6);
4 将指定的位取反
void BitCpl(unsigned char *Pa,char b)//Pa为取反位对象的地址,b值为指定的位
{
*Pa^=1b;
}