程序编译链接原理
预处理:.c -> .i
gcc -E hello.c -o hello.i

编译:.i / .c -> .s
gcc -S hello.i -o hello.s

汇编:.s -> .o
gcc -c hello.s -o hello.o

链接:.o -> 可执行程序app
gcc hello.o -o app

gedit hello.c

小端存储法——高地址存高字节,低地址存低字节(高存高,低存低)
(intel/ARM)
0x表示十六进制

数值:0x12 34 56 78在小端存储器里如何存储

0x8003 0x12
0x8002 0x34
0x8001 0x56
0x8000 0x78

1 BYTE = 8bit

大端存储法——高地址存低字节,低地址存高字节(高存低,低存高)
(IBM大型机/网络字节序)
数值:0x12 34 56 78在小端存储器里如何存储

0x8003 0x78
0x8002 0x56
0x8001 0x34
0x8000 0x12

进制转换
10进制: 0,1,2,3,4,5,6,7,8,9,10
2进制: 0,1
8进制: 0,1,2,3,4,5,6,7
16进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

百 十 个
1 2 3

1x10^2 + 2x10^1 + 3x10^0

0 1 0
0x2^2 + 1x2^1 + 0x2^0 = 2

1100 1010
0+2+0+8+64+128=202

二进制: 000 001 010 011 100 101 110 111 001000
十进制: 0 1 2 3 4 5 6 7 8
八进制: 0 1 2 3 4 5 6 7 10

二进制: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
十进制: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
十六进制: 0 1 2 3 4 5 6 7 8 9 A B C D E F

二进制:1010 0001 1000
十六进制:A 1 8

十六进制:3D7
二进制: 0011 1101 0111

八进制:11
二进制:001 001

37
八进制开头:0
十六进制开头:0x
十进制开头:什么都不跟

八进制:0777
十六进制:0xffff8000

5进制:23 = 3x5^0 + 2x5^1 = 13

8 4 2 1

2^3 2^2 2^1 2^0

1000 0100 0010 0001

0111

十进制:89 对应的二进制 1011001
89 .... 1
44 .... 0
22 .... 0
11 .... 1
5 .... 1
2 .... 0
1 .... 1

1011001
1+0+0+8+16+0+64 = 89

49 ... 1
24 ... 0
12 ... 0
6 ... 0
3 ... 1
1 ... 1

0011 0001
0x31

0567
101 110 111

bit位

8bit = 1BYTE =》每个字节拥有一个地址

0x8003
0x8002
0x8001
0x8000

1 和 -1

原码 反码 补码

1 0000 0001 0000 0001 0000 0001 正数的反码,补码都等于原码
-1 1000 0001 1111 1110 1111 1111 负数的补码等于把反码加1

0 0000 0000 0000 0000 0000 0000
-0 1000 0000 1111 1111 0000 0000

如果(0 等于 -0)
执行aaaa;
否则
执行bbbb;

97 =》 97 ... 1 => 0110 0001
48 ... 0
24 ... 0
12 .... 0
6 ... 0
3 ... 1
1 ... 1
原码 反码 补码
-31 => => 31 => 31 ... 1 => 0001 1111 => 1001 1111 => 1110 0000 => 1110 0001
15 ... 1
7 ... 1
3 ... 1
1 ... 1

char b = 1; => (-128~127)
unsigned char a = 129; => (0~255)
s
0000 0000
1000 0001
1111 1111
int
unsigned int -> (0~2^32-1)

char b = 'x';
int c = 10;

'x' => 120 => 0111 1000
10 => 1010
.
.
.
0x8003
0x8002
0x8001
&b => 0x8000 1BYTE 0111 1000
.
.
.
0x7003 0000 0000 => 0x00
0x7002 0000 0000 => 0x00
0x7001 0000 0000 => 0x00
&c => 0x7000 0000 1010 => 0x0A
printf("&c = %p\tc = %d", &c, c);

'x' => 120
'\a'
'"'
345

"hello" => 'h' 'e' 'l' 'l' 'o' '\0'

notice :  'a' and "a"  not queal , because "a" = 'a' +'\0'
"a" = "c";

"123" => 123

'1' '2' '3' '\0'

'1' - '0' = 1
1*10 + '2'-'0' = 12
12*10 + '3'-'0' = 123

int a = 5;
a % 3 => 2
a / 2 => 2

float a = 5.0
a % 3 => ???报错
a / 2 => 2.5

1.打印基本数据类型sizeof大小
2.利用vs2013学会查看内存, 查看变量地址和地址里的数值

[C++] Variable/Hex conversion的更多相关文章

  1. 763. Hex Conversion [LintCode naive]

    Description Given a decimal number n and an integer k, Convert decimal number n to base-k. 1.0<=n ...

  2. 763 Hex Conversion

    原题网址:http://www.lintcode.com/zh-cn/problem/hex-conversion/ Given a decimal number n and an integer k ...

  3. codewars--js--RGB To Hex Conversion

    问题描述: The rgb() method is incomplete. Complete the method so that passing in RGB decimal values will ...

  4. Hex Dump In Many Programming Languages

    Hex Dump In Many Programming Languages See also: ArraySumInManyProgrammingLanguages, CounterInManyPr ...

  5. uvm_hdl——DPI在UVM中的实现(四)

    我们可以在uvm中实现HDL的后门访问,具体包括的function有uvm_hdl_check_path,uvm_hdl_deposit, uvm_hdl_force,uvm_hdl_release, ...

  6. The Complete Javascript Number Reference 转载自:http://www.hunlock.com/blogs/The_Complete_Javascript_Number_Reference

    The Complete Javascript Number Reference Filed: Mon, Apr 30 2007 under Programming|| Tags: reference ...

  7. CCS开发指南

    第一章  CCS概述 1 1.1 CCS概述 1 1.2 代码生成工具 3 1.3 CCS集成开发环境 5 1.3.1 编辑源程序 5 1.3.2创建应用程序6 1.3.3 调试应用程序 6 1.4  ...

  8. TMS320C54x系列DSP指令和编程指南——第1章 汇编语言工具概述

    第1章 汇编语言工具概述 TMS320C54x DSP的汇编语言开发工具包括: ■  Assembler      ■  Archiver      ■  Linker      ■  Absolut ...

  9. C语言:十进制进制转换为其他进制(思想:查表法)

    // //  main.c //  Hex conversion // //  Created by ma c on 15/7/22. //  Copyright (c) 2015年 bjsxt. A ...

随机推荐

  1. laravel Auth token创建于使用

    token 的创建和使用, https://laravelacademy.org/post/3640.html 用户表密码字段验证修改,不只是password https://www.jianshu. ...

  2. 简单服务端缓存API设计

    Want 我们希望设计一套缓存API,适应不同的缓存产品,并且基于Spring框架完美集成应用开发. 本文旨在针对缓存产品定义一个轻量级的客户端访问框架,目标支持多种缓存产品,面向接口编程,目前支持简 ...

  3. 用js实现屏蔽F12、鼠标右击、鼠标左击

    function window.onhelp(){return false} //屏蔽F1帮助 document.onkeydown = function(){ if(window.event &am ...

  4. FC Switch sfpshow

    sfpshow - fault-finding on Brocade Fibre Channel Switches So you've hit a situation where a Fibre Ch ...

  5. 解决win下无法ping通VM虚拟机CentOS系统的方法

    事情描述:公司迁新址,电脑带过去之后,用xshell连接vm的centos系统老是连接失败,然后考虑到公司迁新址这个情况,我首先怀疑是ip的问题,然后在vm中执行ifconfig找到centos的ip ...

  6. Window app遇到的问题

    Windows下两个应用之间进行UDP通讯,必须要先互相发送过数据,才能收到其他的数据.解决方法: <Capabilities> <Capability Name="int ...

  7. 【UVA】10391 Compound Words(STL map)

    题目 题目     分析 自认已经很简洁了,虽说牺牲了一些效率     代码 #include <bits/stdc++.h> using namespace std; set <s ...

  8. java中构造方法和方法super/this超类与子类中初始化顺序

    java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...

  9. Linux关闭iptables以及selinux

    1.查看iptables状态 /etc/init.d/iptables status # 方法1 service iptables status # 方法2 2.重启后永久生效 chkconfig i ...

  10. Python 迭代器和生成器(转)

    Python 迭代器和生成器 在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的, ...