牛客入门c刷题笔记

缩短二进制__牛客网

%#o:输出带前导o的八进制数

%#X:输出带前导ox的十六进制数


printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数

%-8d:数字靠左对齐输出,共八位,不足的空格补齐

%+8d:数字靠右对齐输出,共八位,不足的空格补齐


取个位数使用的对十取余法以及浮点数强制类型转换为整型


#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    printf("%d",2<<(n-1));
  //在2进制中,2的表示为00000010
  //我们只使用移位符来完成2的n次方,仅需使这个1往左移动。
  //如4:00000100;8:00001000
  //要注意为什么这里是(n-1)
  //因为2本身已经在第二位了,是2的1次方。
    return 0;
}

原文连接:https://www.cnblogs.com/shrimp-can/p/5145351.html

移位运算符包括左移"<<“和右移”>>"

左移运算符<<:

1.无符号

语法格式:需要移位的数字<<移位的次数n

运算规则:按二进制形式把所有数字向左移动相应的位数,高位移出(舍弃),低位的空位补0。相当于乘以2的n次方

例如:4<<2 ,就是将数字4左移2位

过程:4的二进制形式:00000000 00000000 00000000 00000100;然后把高位2个0移出,其余所有位向左移动2位,低位补0,得到:00000000 00000000 00000000 00010000;十进制数为16,16=4*22。


#include<stdio.h>
int main()
{
    int age;
    scanf("%d",&age);
    printf("%lld",age*(long long)3.156e7);
    return 0;
}

3.156e7要声明longlong 才可以把乘积定为longlong,否则随age的int

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值