C:进制
1.对于进制
10进制 (0 - 9)
16进制 (0——9 A B C D E F)
硬件中的高低电平(0 和 1表示)所以计算机用 二进制
机器语言就是由 0 和 1 组成的一串组合的语言
字节是计算机里最小的计量单位 1 字节代表 8 个二进制位 (0——255)
2.十进制转换N进制规则:
连除倒取余数
——>2进制 ? 1010
——>2进制 ? 1111
——>2进制 ? 101111
N进制转换为十进制:
2进制换换为10进制 按权求和
= 1*100+2*10+3*1;
——>1*32+0*16+1*8+1*4*+0*2+1*1 = 45;
——>1*128+1*64+0*32+1*8+0*4+1*2+1*1 = ;
10进制转换为8进制
——>8进制 ? 12
——>8进制 ? 17
——>8进制 ? 57
8进制转换十进制
——》1*64+2*8+5*1 = 85
基础知识
//计算机的 数据的存储都是按照二进制的补码的形式进行存储的
// 原码
// 反码
// 补码
// 负数的最高位规定为符号位 1 表示为负数,在参与运算的时候也把符号位考虑进来
// 负数的补码 就是本身除了符号位之外的按位取反再加1
// 正数的补码 就是本身
// 反码 就是按位取反(符号位不变)
// 负数的补码 就是本身的反码再加1
//逻辑运算的非 符号 ~
// int a = 5;//0101 ~a 1010 + 1 1110 就是 -6
// printf("%d\t\n",~a);
//设断点,看变量的内存位置
//内存的分区
//栈区 堆区 常量区 全局静态区 代码区
//栈区的内存分配原则:从高到底分配,从低到高存取
int a = , b = ;
printf("a : %p\n",&a);//打印出变量的地址
printf("b : %p\n",&b);
//获取数据存取的时候的两种方式:1.直接访问(直接呼其名字) 2.间接访问(获取地址,通过地址来操作)
//说到地址的时候就是指针 数组的名字就是首地址
int arr[] = {};
printf("数组的地址:%p\t\n",&arr[]);
printf("数组的地址:%p\t\n",arr);//数组的名字就是数组的首地址也就是数组第一个元素的内存地址
/*
十进制 10
二进制 0b10
八进制 010
十六进制 0x10
*/
int a = ;
int b = 0b10;
int c = 0x125;
//二进制数修饰符号 0b
//八进制数修饰符号 0
//十六进制修饰符号 0x
int x = 0b1010;
printf("十进制输出x = %d \n",x);
//八进制输出
printf("八进制输出 x = %O \n",x);//是字母的O %O 注意不是0哦
//十六进制输出
printf("十六进制小写的输出x = %0x \n",x);//是 %0X 注意是数字的0 不是字母哦 如果0x对应的x要是小写的x则后面输出的A.....则按对应的大小写输出
/*总结格式转换符
%d 整型
%hd 短整型
%ld 长整型
%f 单精度浮点型
%g 省去后面多余的0(浮点型)
%lf double型
%c 字符型
%s 字符型
%O 八进制数
%0X 十六进制大写输出 %0x 十六进制小写字母输出
%lu unsingned long 无符号长整型
%p 打印变量的内存地址 注意是小写的p 写成大写的P则不行
*/
//交换两个
//^ 位运算符
//通过异或 ^ 交换两个数
//优点:不用第三方变量,避免超出范围 缺点:消耗内存,效率低,速度慢
// int num1 = 2,num2 = 5;
// num1 = num1 ^ num2; // num1 = 7
// num2 = num1 ^ num2; // num2 = 2
// num1 = num1 ^ num2; // num1 = 5
// printf("num1 : %d num2 : %d ",num1,num2); //按位与 & 同为 1 就为 1 有一个为 0 就为 0
//按位或 | 同为 0 就为 0 有一个为 1 就为 1
//按位异或 ^ 相同为 0 不同为 1
//左移 << ;向左移动一位 每次左移一位就相当于 原来数字 * 2
//右移 >> ;向右移动一位 每次右移一位就相当于 原来数字 / 2
实战
// int b1 = 0b1011;
// int b2 = 0b0110;//改为1001测试
// int result = b1 & b2;//结果为0010
// printf("result = %d\n",result); // int b1 = 0b1011;
// int b2 = 0b0010;//改为1001测试
// int result = b1 | b2;//结果为0010
// printf("result = %d\n",result); // int b1 = 0b1011;
// int b2 = 0b0110;//改为1001测试
// int result = b1 ^ b2;//结果为0010
// printf("result = %d\n",result); // int b1 = 0b1011;
//// int b2 = 0b0110;//改为1001测试
// int res = b1 << 1;
//// int result = b1 & b2;//结果为0010
// printf("result = %d\n",res ); int a = 0b0100;//
int res = a >> ;//
printf("%d\t\n",res);
int res1 = res >> ;
printf("%d\t\n",res1);
printf("%d\t\n",0b0101 << );//左移动后后面空的位置补 0
语句
If(条件表达式){语句块;}这里有可能有陷阱,如果if()后多一个;号 一般很难查找出来
if(条件表达式1){语句块2;}else if(条件表达式2){语句块2}…else{语句块n;}
if(条件表达式){语句块1}else{语句块2}
while(条件表达式){语句块}//其中条件表达式里面不能够出现像:a = 5的表达式 可以出现判断的语句如:a == 5
for (1.循环变量初始化; 2.循环条件; 3.循环增量) {
do { } while(--b) 与 do{}while(b--)的区别
for 循环循环的次数计算
// int i = 0;
// //循环次数的计算,( 不满足条件的第一个数 - 循环变量的初始值 )/ 每次循环的增量
// for(i ; i < 200; i = i + 2)
在if()里面的判断语句时候 要把数字写前面 ( == s)这样万一==写成= 也会报错,方便后面检查。
数组元素在分配地址的时候,是先分配最外层的元素的地址比如 a[5] 来说,先分配 a[4] 的地址,然后a[3]……
C:进制的更多相关文章
- SQL Server 进制转换函数
一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ...
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
- TCP进制转换
/// <summary> /// 将十六进制字符串转化为字节数组 /// </summary> /// <param name="src">& ...
- 将十进制数转为一个n位数的密码(每位都是个m进制数)
例如一个6位数的10进制密码,共有106个密码,如果把每个6位数的密码编成号就是[0,106-1].这是十进制的情况,即6个位,每个位有10种选择.如果要遍历所有密码,需要6重for循环,每个循环10 ...
- - >code vs 1475 m进制转十进制
1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将m进制数n转化成一个 ...
- ->code vs 1474 十进制转m进制
1474 十进制转m进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将十进制数n转换成m进 ...
- C++各种进制的转换
/* @author:CodingMengmeng @theme:各种进制之间的转换 @time:2017-1-6 21:39:08 @blog:http://www.cnblogs.com/codi ...
- pyserial 16进制显示与发送
pyserial 16进制显示与发送 http://www.centoscn.com/python/2013/0817/1320.html 十六进制显示的实质是把接收到的字符诸葛转换成其对应的ASCI ...
- 第26章 java进制操作
java进制操作 1.二进制 二进制只有0和1,逢二进一 二进制多用在计算机中,来自计算机硬件的开关闭合 2.位运算 分别讲解: 2.1.按位与 & 两位全为1,结果才为1 0&0=0 ...
- [No000071]C# 进制转换(二进制、十六进制、十进制互转)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
随机推荐
- HDU5400 Arithmetic Sequence
解题思路:这题看懂题目是很关键的,这个区间是等差数列,且公差为d1或d2, 特别注意单个数字也为等差数列.每次求出等差数列序列长度,然后 求出对应这种长度对应有多少种组合方式,累加起来就是结果. ...
- 【英语】Bingo口语笔记(66) - 美式发音特点
- 实验室 Linux 集群的管理常用命令
实验室有一个Linux集群,本文做一下记录. SSH相关命令 通过SSH登录集群中的其他机器上的操作系统(或虚拟机中的操作系统).操作系统之间已经设置免密码登录. 1. 无选项参数运行 SSH 通常使 ...
- PL/SQL 下邮件发送程序
对DBA而言,尽管在os级别下发送邮件是轻而易举的事情,然而很多时候我们也需要在PL/SQL中来发送邮件,比如监控job的执行状况等.本文根据网友(源作者未考证)的代码将其改装并封装到了package ...
- 可以Ping通和DNS解析,但打不开网页的解决办法
一. 网络故障表现为: 1.Ping地址正常,能ping通任何本来就可以ping通地址,如网关.域名. 2.能DNS解析域名. 3.无法打开网页,感觉是网页打开的一瞬间就显示无网络连接. 4.只需要连 ...
- 字符串中符号的替换---replace的用法
#include<iostream> #include<string> using namespace std; int main() { string s1 = " ...
- 6、Android中的NFC技术
Android对NFC技术的支持 Android2.3.1(API Level = 9)开始支持NFC技术,但Android2.x和Android3.x对NFC的支持非常有限.而从Android4.0 ...
- 初识MFC,WinForm,WPF,Q't
MFC和QT是C++中常见的GUI框架,而WinForm和WPF是C#中常用的框架,不过我们一般很少叫WinForm框架,可能直接叫图形控件类库更多点.反正只是个称呼罢了,爱咋叫就咋叫.另外WinFo ...
- IE6 IE7 IE8 的函数声明和函数表达式的实现与其他浏览器有差异
标准参考 函数声明和函数表达式 定义一个函数有两种途径:函数声明和函数表达式. 函数声明: function Identifier ( FormalParameterList opt ) { Func ...
- 《学习OpenCV》练习题第五章第一题ab
这道题是载入一幅带有有趣纹理的图像并用不同的模板(窗口,核)大小做高斯模糊(高斯平滑),然后比较用5*5大小的窗口平滑图像两次和用11*11大小的窗口平滑图像一次是否接近相同. 先说下我的做法,a部分 ...