比如在c中,想得到一个int的二进制可以通过itoa,但是这是通过程序计算得到的,我想知道是否有直接读取内存地址上二进制数据的系统接口?
ps:通过gdb的x命令可以查看内存数据,我觉得这是最接近底层的了。
ps:通过gdb的x命令可以查看内存数据,我觉得这是最接近底层的了。
1
9hills Oct 14, 2013
itoa不是返回二进制。。它是把二进制转换为字符串给你看得
|
2
Kabie Oct 14, 2013
C获取指针然后就随便玩了。。。当然你得知道存储方式。。。其他语言估计就难了……
|
3
66450146 Oct 14, 2013
直接使用这个变量就是使用它的二进制数据啊。。。。
|
5
jseanj OP |
6
wjchen Oct 14, 2013
struct a
{ int a1 :1; int a2:1; ..... int a32:1; }; 这样?将int用memcpy拷贝到结构体。 |
11
ddaii Oct 14, 2013
@jseanj 在c语言中定义的各种类型其实都只是定义一块内存区域的操作方式而已,所以无论是int,char,float,double,你需要用一个指针就可以把它读取出来了,这并不需要什么系统接口。
|
12
Golevka Oct 14, 2013 @jseanj 啊哈哈哈哈哈哈哈你真的知道自己究竟想要什么吗?
另外注意一下如果你在userspace下那么你能摸到的大部分地址都不是等值映射的, 所以如果你想访问真正的物理地址那么还得找别的办法=w= |
15
jedyu Oct 14, 2013
自己写个函数,遍历每一位&一下
|