C语言整数进行二进制显示

在c语言中,有将整数进行8进制和16进制的显示,但是没有对整数进行2进制显示的,对整数进行2进制显示之后可以方便的用在对位操作的观察上。


int IntegerToBinary( int number )
{
char ret[32];
unsigned int index;
int i = 0, N = sizeof( int )*CHAR_BIT;


index = 1 << ( N-1 );
for( i = 0; i < N; i++)
{
ret[i] = ((number & index) == 0) ? '0' : '1';
index >>= 1;
}
printf("%s\n",ret);
return 1;
}



参考:http://www.cnblogs.com/hami/archive/2011/03/09/1979249.html

在 C 语言中,长整数类型可以使用 `long long` 或 `unsigned long long` 关键字进行声明。下面是一个示例程序,演示如何将长整数转换为二进制和十六进制: ```c #include <stdio.h> int main() { unsigned long long num = 1234567890123456789ULL; printf("二进制表示:%llx\n", num); printf("十六进制表示:%llx\n", num); return 0; } ``` 在上面的程序中,`%llx` 格式控制符用于打印一个长整数的十六进制表示,`%llu` 格式控制符用于打印一个无符号长整数的十进制表示。 如果需要将长整数转换为二进制字符串,则可以使用以下代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> char* to_binary_string(unsigned long long num) { char* str = (char*) malloc((sizeof(num) * 8 + 1) * sizeof(char)); memset(str, 0, (sizeof(num) * 8 + 1) * sizeof(char)); char* p = str; int i; for(i = 0; i < sizeof(num) * 8; i++) { *p++ = (num & (1ULL << (sizeof(num) * 8 - i - 1))) ? '1' : '0'; } return str; } int main() { unsigned long long num = 1234567890123456789ULL; char* binary_string = to_binary_string(num); printf("二进制表示:%s\n", binary_string); free(binary_string); return 0; } ``` 这个程序中,`to_binary_string()` 函数接收一个长整数参数,并返回一个指向该数的二进制字符串的指针。在函数内部,我们使用位运算和循环来将数字转换为二进制字符串。在主函数中,我们调用 `to_binary_string()` 函数,并打印字符串。请注意,我们需要释放内存,以避免内存泄漏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值