程序编译链接原理
预处理:.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. ThinkPHP 分页功能梳理

    最近在开发一个项目,使用了国内流行的ThinkPHP框架,我之前没怎么用过这个框架,也是临时抱佛脚,用的不怎么样?可能理解不是很深刻,如果有说的不对或不正确的地方,请大家多包涵,多指教. ThinkP ...

  2. 使用FILE指针读写文件

    http://www.cnblogs.com/Solstice/archive/2011/07/17/2108715.html 看了这篇博客有感而发. 就个人而言我是典型的从C到C++的类型,并且逐渐 ...

  3. Pdnovel 在线阅读体验

    pdnovel是discuz的一款小说阅读插件,本身是用php开发的,数据存储于mysql,小说文本存储于file文件.pdnovel本身已有添加书籍.连载章节的功能,但为了批量添加全本txt书籍又开 ...

  4. A Complete Web Video Solution

    A Complete Web Video Solution FLASH . HTML5 . JAVASCRIPT API Support Embed videos from youtube, Vime ...

  5. ARP的一次请求与应答

    ARP: 我们知道,网络层和网络层以上使用的是IP地址,但在实际网络的链路上传送数据帧时,数据包首先是被网卡接受到再去处理上层协议的,所以最终还是必须使用该网络的硬件地址.但IP地址和下面的网络的硬件 ...

  6. java代码-----实现有键盘获得的字符串存储在文件中,并从文件中读取后显示在屏幕上

    总结: 没体会到 package com.a.b; import java.io.*; public class tsetOut { public static void main(String[] ...

  7. 局域网使用NAT进行测试第三方接口

      问题分析   在局域网内开发一些涉及到第三方的接口调用功能时(譬如:支付),需要对方服务器进行接口回调,接受对方发送过来的信息.问题来了,我们一般开发都是在内网,如何才能获取到外网返回的数据呢?如 ...

  8. 这段时间使用MySQL的一些记录

    自从Fedora19之后,Linux上的MySQL就被MariaDB所取代,这段文字见如下引用: MySQL was replaced by MariaDB since Fedora 19 (http ...

  9. 加载内核模块-Unknown symbol错误分析

    Unknown symbol 说明  有些函数不知道(未定义). 在调试过程中,发现一个问题,编译生成一个KO文件,insmod加载后报错: Unknown symbol var_set_intege ...

  10. MySQL--产品的起源和状态

    MySQL这个名字,起源不是很明确.一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫M ...