社区
C语言
帖子详情
用unsigned char如何得到int数据
yueliang1982
2004-12-24 11:44:15
将整形数据4个字节存放的值分别输出
int iTim = 1222110833;
unsigned char* p = (unsigned char*) &iTim;
for(int i = 0; i < sizeof(int); ++i)
{
cout<<int(*(p++))<<endl;
}
输出的结果是:113, 238, 215, 72
那怎么样才能手工算出这个结果了???
也就是得到这个结果的原理是什么啊??
...全文
110
4
打赏
收藏
用unsigned char如何得到int数据
将整形数据4个字节存放的值分别输出 int iTim = 1222110833; unsigned char* p = (unsigned char*) &iTim; for(int i = 0; i < sizeof(int); ++i) { cout<<int(*(p++))<<endl; } 输出的结果是:113, 238, 215, 72 那怎么样才能手工算出这个结果了??? 也就是得到这个结果的原理是什么啊??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yueliang1982
2004-12-24
打赏
举报
回复
谢谢!!!
darkstar21cn
2004-12-24
打赏
举报
回复
一个int的存放方式:(window的)
比如1的存放为:00000001 00000000 00000000 00000000 (0x01000000)以8个bit为单位,左边为低位,右边为高为,而不是一般的0x00000001
这只是window的存储方法,各个操作系统都有自己的存储方式,可以自己找下资料惑,实验一下。
pacman2000
2004-12-24
打赏
举报
回复
按16进制,然后一个字节一个字节取。
goodluckyxl
2004-12-24
打赏
举报
回复
把int按二进制存放后
一个一个字节分开就是了
AES 加密算法源代码20091025 (C++版)
AES类的三个公共函数 //设置AES类的模式为加密还是解密,并说明密钥长度和明文长度(解密时为密文) //key 密钥
数据
//keySize 密钥长度 //inSize 明文长度(解密时为密文) //isdecrypt 是否为解密(解密时为TRUE) //成功返回1 失败返回-1 失败是由于参数设置不正确引起
int
setMode(
unsigned
char
* key,
int
keySize,
int
inSize, bool isdecrypt); //加密
数据
//input 明文
数据
,长度为setMode时inSize指定 //ouput 加密后的
数据
,长度为setMode时inSize指定 void cipher (const
unsigned
char
* input,
unsigned
char
* output); //解密
数据
//input 密文
数据
,长度为setMode时inSize指定 //output 明文
数据
,长度为setMode时inSize指定 void invCipher(const
unsigned
char
* input,
unsigned
char
* output); //例子 #include "aes.h" #include void main() {
char
* str = "0123456789abcdef"; //被加密的
数据
16字节
char
* pwd = "1111111111111111"; //密码16字节
char
out[17]; //输出缓存 out[16]='\0'; AES aes; /*加密时*/ aes.setMode(pwd, 16, 16, FALSE); aes.cipher(str, out); pr
int
f(out); //输出加密
数据
pr
int
f("\n"); /*解密时*/ aes.setMode(pwd, 16, 16, TRUE); aes.invCipher(out, out); pr
int
f(out); } 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/scofield_zhang/archive/2008/07/21/2687037.aspx
unsigned
int
与
int
的区别,
unsigned
char
和
char
的区别
存储空间:两者占用的存储空间大小相同,但它们的最高位有所不同。
int
的最高位是符号位,用于表示正负;而
unsigned
int
的最高位是
数据
位,不表示正负。符号:
int
是有符号数,可以表示负数和正数;而
unsigned
int
是无符号数,不能表示负数。表示范围:因为
unsigned
int
不能表示负数,所以它可以表示的正数范围比
int
大一倍。这就是二者的主要区别。你可以根据自己的需要来选择使用哪种
数据
类型。
char
,
unsigned
char
,
int
,
unsigned
int
之间的相互转换
char
,
unsigned
char
,
int
,
unsigned
int
之间的相互转换 2018年12月01日 23:45:21 _业精于勤_ 阅读数:667 标签:
数据
转换 更多 个人分类: C语言 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WZJwzj123456/article/details/84679383 最近写代...
C语言
unsigned
char
、
char
与
int
之间的转换
C语言
unsigned
char
、
char
与
int
之间的转换 2016年10月23日 18:40:50 bladeandmaster88 阅读数:11347更多 个人分类: c语言基础 先来看一道题:
char
c1 =-1; cout<< (
int
)c1 << endl; 输出为:-1
unsigned
char
c2 = -1; cout <&l...
unsigned
int
类型的0-255整数强转为
unsigned
char
,为什么不会发生
数据
丢失或改变
请注意,虽然%u是用于打印无符号整数的,但在这个特定的例子中,由于u
char
Value的值(255)较小,它不会超出
unsigned
char
的表示范围,因此可以安全地使用%u来打印它。当255这个整数(在大多数系统中默认为
int
类型,即32位有符号整数)被强制转换为
unsigned
char
类型时,结果仍然是255,但这里的255是以
unsigned
char
的形式表示的。在这个例子中,u
char
Value会被赋值为255,并且使用%u格式说明符来打印这个无符号整数的值。
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章