亲,你寄的 U盘不是 4G 的哟~

news/2024/12/1 0:40:00/

Description:

你是否也注意到,买来的存储设备,如 U盘、移动硬盘等,可用空间总是比卖家标榜的要小。买一只 4G U盘,但实际可用空间却只有 3.5G!
我们知道:
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024B
计算机使用的是二进制,1024 = 210;而我们平时生活里使用十进制,厂家为了方便,使用近似值 1000 来代替 1024,即:
1TB = 1000GB
1GB = 1000MB
1MB = 1000KB
1KB = 1000B
所以买到手的 U盘空间都会缩水。比如,我们期望的 4G 空间有 4 * 1024 * 1024 * 1024 = 4294967296 字节,但实际只有 4 * 1000 * 1000 * 1000 = 4000000000 字节,整整少了 294967296 字节!
我希望你能帮助我开发一款程序:只要输入 U盘的大小,程序能告诉我实际少了多少字节。比如输入“4GB”,程序会输出“294967296”

Sample Input:

256MB
512MB
4GB
256GB
320GB
512GB
999TB
0MB

Sample Output:

12435456
24870912
294967296
18877906944
23597383680
37755813888
99412116148224

Hint:

C 语言里 unsigned long 型整数能保存的最大数是 232-1 = 4294967295,这个数比 4G 要小。你可能没注意到 double 类型是能精确保存 16 位数的,应付本题的 999TB 绰绰有余。

#include<iostream>
#include<string>
using namespace std;//K 2^10
//M 2^20
//G 2^30
//T 2^40int main() {long long x;string s;while (cin >> x >> s && x) {long long n = 0;//f**kif (s == "KB")n = x * 1024 - x * 1000;if (s == "MB")n = x * 1024 * 1024 - x * 1000 * 1000;if (s == "GB") n = x * 1024 * 1024 * 1024 - x * 1000 * 1000 * 1000;if (s == "TB") n = x * 1024 * 1024 * 1024 * 1024 - x * 1000 * 1000 * 1000 * 1000;cout << n << endl;}
}

为什么要把n置零啊?参考了别人的ac代码,怎么都找不到原因,改来改去,都改成别人的代码了。每一次输入都会重新初始化n这个变量,为什么非要给它赋0?


http://www.ppmy.cn/news/22465.html

相关文章

字符串匹配——KMP算法讲解

前言 字符串的匹配: 给定一个母串和一个子串&#xff0c;查找子串在母串出现的位置&#xff0c;然后返回其下标。 对于字符串匹配算法中&#xff0c;最为典型的是BF算法和KMP算法。 BF(暴力匹配)算法 BF算法&#xff0c;即暴力(Brute Force)算法&#xff0c;是普通的模式匹配…

c++排序算法——冒泡排序

引入&#x1f4d5;今天&#xff0c;我们来学习一种排序算法——冒泡排序。首先&#xff0c;先问三个问题&#xff1a;1.为什么要排序&#xff1f;&#x1f525;想象一下&#xff0c;如果字典不是按照字母顺序排列&#xff0c;查找一个单词&#xff0c;你得查到什么时候&#xf…

rsync备份案例(二)

文章目录1. RSYNC 备份需求2. NFS 客户端操作3. BACKUP 服务端操作1. RSYNC 备份需求 客户端需求&#xff1a; 1.客户端提前准备存放的备份的目录&#xff0c;目录规则如下:/backup/nfs_172.16.1.31_2018-09-02 2.客户端在本地打包备份(系统配置文件、应用配置等)拷贝至/bac…

RNAseq生信分析流程简介

文章目录RNAseq简介RNAseq分析流程1. 实验设计1.1 目标RNA提取策略和文库类型选择1.2 测序深度或文库大小1.3 实验重复2. RNAseq信息分析2.1 质控 和 过滤2.2 比对2.3 新转录本的发现2.4 基因和转录水平的定量2.5 差异基因表达分析2.6 可变剪接分析2.7 基因融合RNAseq简介 转录…

Diffusion扩散模型学习1——Pytorch搭建DDPM实现图片生成

Diffusion扩散模型学习1——Pytorch搭建DDPM利用深度卷积神经网络实现图片生成学习前言源码下载地址网络构建一、什么是Diffusion1、加噪过程2、去噪过程二、DDPM网络的构建&#xff08;Unet网络的构建&#xff09;三、Diffusion的训练思路利用DDPM生成图片一、数据集的准备二、…

Java 的基础概念,你了解有多少

目录 一.能够概括叙述 Java 语言的特点&#xff0c;了解 OOP 中的核心概念 1.JVM 2.字节码 3.面向对象 二.能够独立完成 Java 开发运行环境的安装与环境变量的设置&#xff0c;熟悉 JDK &#xff0c;了解 Java 核心文档&#xff0c;能够查找指定的类和方法 1.JDK 2.API …

Java 多线程的实现方式

并发、并行 并发&#xff1a;在同一时刻&#xff0c;有多个指令在单个CPU上交替执行 并行&#xff1a;在同一时刻&#xff0c;有多个指令在多个CPU上同时执行 多线程的实现方式 1、继承Thread类的方式进行实现&#xff1a; 实现步骤&#xff1a; 1、自己定义一个类MyThread继承…

【C++修行之路】类和对象

面向对象编程详解目录前言面向对象和面向过程类和结构体构造函数和析构函数拷贝构造和赋值重载结语前言 好久不见&#xff0c;首先祝大家元宵节快乐&#xff0c;万家元夕宴&#xff0c;一路太平歌&#xff0c;今天执此佳节&#xff0c;一起来学习一下类和对象吧~ 面向对象和面…