| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言学习笔记二、数据类型、控制符、数据储存、原码/反码/补码转换 -> 正文阅读 |
|
[C++知识库]C语言学习笔记二、数据类型、控制符、数据储存、原码/反码/补码转换 |
二、数据类型、控制符、数据储存、原码/反码/补码转换1.数据类型:
1.可以用sizeof()来计算变量的字节大小。 注意:①:在32位的Ubuntu系统中:printf("%u\n", sizeof(char)); 在64位的Ubuntu系统中,要用%lu / %ld来printf!!! ②:使用bool类型时,需要加头文件stdbool.h; bool类型变量的值,非0为真!!! ③:浮点型(float, double)默认保留6位小数,第七位会四舍五入。 2.内存的单位换算:1TB == 1024GB == 1024 * 1024MB == 1024 * 1024 * 1024KB== 1024 * 1024 * 1024 * 1024Byte (字节)== 1024 * 1024 * 1024 * 1024 * 8 bit(位/比特); 2.格式控制符: %d ---》十进制数 %x ---》十六进制数 ------只支持输出正整数,如果是负数,会出错; %c ---》字符 %o ---》八进制数 ------只支持输出正整数,如果是负数,会出错; %s ---》字符串 3.输入(scanf)和输出(printf) ①. printf函数的使用方法 (1)直接输出数据,不加变量 printf("hello world\n"); (2) 加变量输出变量的数据 int a =100; char b ='s' printf("%d\n%c", a, b); (3)使用printf输出特殊字符""、""" -->要加转义字符'' printf("\ \ \n"); /*输出结果:\ */ printf("\ \\ \n"); /*输出结果:\\ */ printf("\"hello\"\n"); /*输出结果:"hello" */ ②. scanf函数的用法 ---》从键盘给变量赋值 (1)给一个变量赋值 int a; scanf("%d", &a); //&(取址符) -->在这里表示取地址(获取变量a的地址) printf("a:%d\n", a); (2)给一个字符类型变量赋值 char a=0; scanf("%c", &a); printf("%c\n", a); //输出变量a的ASCII码值对应的字符 printf("%hhd\n", a); //输出变量a的ASCII码值 (3)给一个数组赋值 char buf[10]; scanf("%s", buf); //buf不用加&符,因为数组名是首元素地址 //赋值时不要输入空格,否则无法获取空格后面的字符串 (4)同时给整形变量和字符变量赋值 char a = 0; int b = 0; scanf("%c %d", &a, &b); //先给字符变量赋值,再给整形变量赋值,不要颠倒顺序; //注意:1> 一般定义变量的时候要赋值为0;否则该变量默认为随机数; ? 2> scanf函数里面的双引号不要加除了格式控制符之外的字符,不要和printf函数混淆 ? 3> 给数组赋值字符串时不可以输入空格 ? //错误的使用方法: ①. char a=0; int b =0; scanf("%d%c", &b, &a); //输入200'\n' -->他会把'\n'当作一个字符直接赋值到a里面, //没有办法给a赋值了 ②. int a; char b; scanf("%d", &a); scanf("%c", &b); //输入200'\n'--》也不能实现,会把'\n'当做字符赋值到b ? 改正: int a; char b; scanf("%d", &a); getchar(); //把'\n' 取走扔了,下一个scanf就不会读到'\n' scanf("%c", &b); ? 4.数据的储存 (1)数据是先转换成二进制,然后再进行储存的; (2)无符号char类型的数据储存空间为2^(8*字节数) 例如:char a = 0; a的储存空间为2^(1*8)=256位,a的取值范围为0~255; 因为char类型只有1个字节,所以是2^(1*8)。 如果a是int类型则为2^(4*8)=4294967296位,a的取值范围则为0~4294967295; 因为取值范围是从0开始计算,所以最大值为4294967296-1。 (3)有符号的数据类型数据储存空间为2^(8*字节数),其中最高位用来储存正负符号,其余位储存二进制数据。 例如: char a = 100 ? ? //a的数据储存空间有8*1-1=7位, ? //存放形式为其原码:0110 0100 其最高位表示正负(0为正,1为负) char b = -100 ? //存放形式为其补码:1001 1100 5.原码、反码、补码 原码:该数绝对值的二进制数 反码:原码取反 补码:反码+1 例如: char a = -100 //原码为 0110 0100 //反码为 1001 1011 //补码为 1001 1100 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 5:07:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |