c++入门笔记(7)进制转换
来源:互联网 发布:破解学校电脑网络 编辑:程序博客网 时间:2024/06/15 23:22
2进制
8进制
16进制
计算机的逻辑
用1和0来代表某一段电路的真实状态(通过或者断电)。
通电为1,断电为0。
二进制
用1和0代表真和假。
由于早期的计算机一次能够发送8位数字,很自然地用8位2进制数字编写代码。
字节
8位2进制也叫字节。
如:从0000 0000… …1111 1111间的所有可能的组合,每一种组合便是8位计算机的一次传递的量。
16位计算机则一次传递0000 0000 0000 0000… … 1111 1111 1111 1111间的16位2进制数字组合。以此类推。
8位2进制数可以表示256个不同的值。
高8位和低8位
8位2进制数字是一个字节,那么4个2进制数字就是半个字节,如:
1010 0101
1010是前半个字节,叫高8位。
0101是后半个字节,叫低8位。
进制的换算
10进制使用数字0-9,逢10进1 。
16进制使用数字0-F,逢16进1。
8进制使用数字0-7,逢8进1。
2进制使用数字0-1,逢2进1 。
10的进位:
100 101 102 103… …
16的进位:
160 161 162 163… ..
8的进位:
80 81 82 83… ..
2的进位:
20 21 22 23… ..
任何数值的0次冥是1
因此,如果要表示10进制的5:
5*100= 5
表示15:
1 *101+5 *100=10+5=15
表示100:
1 *102+0 *101+0 *100 = 100+0+0=100
8进制数转换10进制数
同理,8进制数111便是:
1 *82+1 *81+1 *80=64+8+1=(10进制)73
16进制数转换10进制数
16进制数FFFF
F * 163+ F * 162+ F *161 +F *160=61440+3840+240+15=(10进制)65535
2进制数转换10进制数
2进制数1111 1111
1 *27+1 *26+1 *25+1 *24+1 *23+1 *22+1 *21+1 *20=128+64+32+16+8+4+2+1=(10进制)255
10进制数转8进制数
先定它的位数,看一个10进制数中有多少个8的幂,
比如十进制数200,它里面最多包含2个8相乘,那么它转换成8进制数最高位是82.
200除以64(82)等于3,那么8进制第3位是3。
200/64=3余8,8除以8(81)等于1,那么8进制的第2位是1。
余数为0,那么8进制的第1位为0;
所以10进制数200转换成8进制数为:310。
10进制数转2进制数
同理。
10进制数65转2进制数。
先定位:第7位,26(64)。
65除以64(26)等于1。故第7位是1。
余1,1比32小,故第6位是0。
1比16小,故第5是0。
1比8小,故第4位是0。
1比4小,故第3位是0。
1比2小,故第2位是0。
由于余数还是1,故第1位是1。
所以10进制数65转换为2进制数为:1000001
10进制数转16进制数
同理。
10进制数5000转16进制数。
先定位:第4位,163(4096)。
5000除以4096(163)等于1。故第4位是1。
余904,904除以256等于3,故第3位是3。
余136。136除以16等于8,故第2位是8。
余8,故第1位是8。
所以10进制数5000转换为2进制数为:1388
2进制数转16进制数
如:2进制数1111 1100
把这个2进制数分为两组,
右边一组是:1111,在10进制中为15,在16进制中为F。
右边一组是:1100,在10进制中为12,在16进制中为C。
把这两个16进制数放在一起就是FC,它的实际值为1111 1100。
这种快捷方式永远成立,它可以将任何长度的任何一个2进制数,缩减为每4个一组,将每组中的4位数转换成一个16进制数。把这些16进制数拼在一起就得到了在16进制数中的结果。而将16进制数换成10进制数又非常方便。
这就是为什么汇编语言使用16进制的原因。
16进制FC是10进制的252。
F*161+c*160=15*16+12=240+12=252(10进制)
- c++入门笔记(7)进制转换
- C语言编程入门必做题-2~16进制转换
- C语言入门-数字的进制转换
- java入门学习笔记,不同进制之间的转换!
- 学习笔记------数据结构(C语言版)进制转换
- c语言学习笔记6之进制转换
- 【入门】进制转换 【数组】
- C#进制转换
- c#-进制转换
- C.进制转换
- c++-进制转换
- 【笔记】进制转换
- Object-c入门笔记
- Objective-C 入门笔记
- C语言入门笔记
- C语言-进制转换
- c/c++进制转换
- C语言 进制转换
- 多线程Runnable类创建多线程
- 一位程序员的十年工作总结,值得每位互联网人看
- 队列与并发--生产者和消费者模式
- Hungry Student Problem_Codeforces
- 多线程Thread类创建多线程
- c++入门笔记(7)进制转换
- CART树剪枝的操作的理解
- mac 命令行
- 线程的优先级
- 趣图:有啥事是比啪啪还更爽的呢?
- 编程语言 12 月排行榜:万年不变的前三,C 和 Kotlin 有望成为年度编程语言
- 面向对象:希望未来的路,你可以牵着我的手,走下去
- 设计模式day01
- 线程休眠